public static void Main()
var permissions = Permissions.Inline;
Console.WriteLine(JsonSerializer.Serialize(permissions, new JsonSerializerOptions { IgnoreNullValues = true }));
public sealed class Permissions
private Permissions(string group, string permission, bool readOnly, bool readWrite) : this(group, permission, false, readOnly, readWrite, true)
private Permissions(string group, string permission, bool noAccess, bool readOnly, bool readWrite, bool admin)
PermissionId = Guid.NewGuid().ToString();
public string PermissionId { get; }
public string Group { get; }
public string Permission { get; }
public bool NoAccess { get; }
public bool ReadOnly { get; }
public bool ReadWrite { get; }
public bool Admin { get; }
public static Permissions[] Inline => GetInline();
private static Permissions[] GetInline()
new Permissions("Audit", "ViewAuditLog", true, true),
new Permissions("Companies", "ViewCompaniesLibrary", true, true),
new Permissions("Companies", "ViewCompanyDetails", true, true),
new Permissions("Companies", "CreateCompany", true, false),
new Permissions("Companies", "EditCompany", true, false),
new Permissions("Companies", "DeleteCompany", true, false),
new Permissions("Costs", "ViewCostsLibrary", true, true),
new Permissions("Costs", "ViewCostPage", true, true),
new Permissions("Costs", "CreateCost", true, false),
new Permissions("Costs", "EditCost", true, false),
new Permissions("Costs", "DeleteCost", true, false),
new Permissions("CostPackages", "ViewCostPackagesLibrary", true, true),
new Permissions("CostPackages", "ViewCostPackage", true, true),
new Permissions("CostPackages", "CreatePostPackage", true, false),
new Permissions("CostPackages", "EditCostPackage", true, false),
new Permissions("CostPackages", "DeleteCostPackage", true, false),
new Permissions("CostPackages", "AddOrRemoveCostToCostPackage", true, false),
new Permissions("Departments", "ViewDepartmentsLibrary", true, true),
new Permissions("Departments", "ViewDepartmentPage", true, true),
new Permissions("Departments", "CreateDepartment", true, false),
new Permissions("Departments", "EditDepartment", true, false),
new Permissions("Departments", "DeleteDepartment", true, false),
new Permissions("Departments", "AddOrRemoveUserToDepartment", true, false),
new Permissions("Enrollment", "ViewPlayerAccount", true, true),
new Permissions("Enrollment", "ViewGroups", true, true),
new Permissions("Enrollment", "ViewEvents", true, true),
new Permissions("Enrollment", "ViewFloor", true, true),
new Permissions("Enrollment", "CreatePlayerAccount", true, false),
new Permissions("Enrollment", "CheckInPlayerToGroup", true, false),
new Permissions("Enrollment", "CheckInPlayerToEvent", true, false),
new Permissions("Enrollment", "CreateGroup", true, false),
new Permissions("Enrollment", "EnableOrDisableCheckIn", true, false),
new Permissions("Enrollment", "OverrideToEvent", false, false),
new Permissions("Enrollment", "SetOrResetPIN", false, false),
new Permissions("Enrollment", "ChangePersonalData", false, false),
new Permissions("Enrollment", "OpenOrCloseCheckInForGroupAndEvent", false, false),
new Permissions("Enrollment", "OpenOrCloseWaitingList", false, false),
new Permissions("Enrollment", "IssueOffer", true, false),
new Permissions("Events", "ViewEventsLibrary", true, true),
new Permissions("Events", "ViewEventDetails", true, true),
new Permissions("Events", "CreateEvent", true, false),
new Permissions("Events", "EditEventDetails", true, false),
new Permissions("Events", "DeleteEvent", true, false),
new Permissions("Events", "CopyEvent", true, false),
new Permissions("Events", "RemoveGuests", false, false),
new Permissions("Events", "AddGuestToInviteList", false, false),
new Permissions("Groups", "ViewGroupsLibrary", true, true),
new Permissions("Groups", "ViewGroupDetails", true, true),
new Permissions("Groups", "CreateGroup", true, false),
new Permissions("Groups", "EditGroupDetails", true, false),
new Permissions("Groups", "DeleteGroup", true, false),
new Permissions("Groups", "CopyGroup", true, false),
new Permissions("Groups", "MovePassengers", false, false),
new Permissions("Groups", "RemovePassengers", false, false),
new Permissions("Offers", "ViewOffersLibrary", true, true),
new Permissions("Offers", "ViewOffer", true, true),
new Permissions("Offers", "CreateOffer", false, false),
new Permissions("Offers", "EditOffer", false, false),
new Permissions("Offers", "DeleteOffer", false, false),
new Permissions("OfferPackage", "ViewOfferPackageLibrary", true, true),
new Permissions("OfferPackage", "ViewOfferPackage", true, true),
new Permissions("OfferPackage", "CreateOfferPackage", true, false),
new Permissions("OfferPackage", "EditOfferPackage", true, false),
new Permissions("OfferPackage", "DeleteOfferPackage", true, false),
new Permissions("OfferPackage", "AddOfferToOfferPackage", true, false),
new Permissions("OfferPackage", "RemoveOfferFromPackage", true, false),
new Permissions("Reporting", "ViewReportingPage", true, true),
new Permissions("Reporting", "CreateReporting", true, false),
new Permissions("SecurityGroups", "ViewSecurityGroupsLibrary", true, true),
new Permissions("SecurityGroups", "ViewSecurityGroupPage", true, true),
new Permissions("SecurityGroups", "CreateSecurityGroup", true, false),
new Permissions("SecurityGroups", "EditSecurityGroup", true, false),
new Permissions("SecurityGroups", "DeleteSecurityGroup", true, false),
new Permissions("SecurityGroups", "AssignOrDetachUserToSecurityGroup", true, false),
new Permissions("SecurityGroups", "ConfigurePermissionsForSecurityGroup", false, false),
new Permissions("Users", "ViewUsersLibrary", true, true),
new Permissions("Users", "ViewUserDetails", true, true),
new Permissions("Users", "CreateUserAccount", true, false),
new Permissions("Users", "EditUserAccount", true, false),
new Permissions("Users", "DeleteUserAccount", true, false),
new Permissions("Users", "ChangeUserPassword", true, false),
new Permissions("Users", "DisableOrEnableUser", false, false)