1
0
Fork 0

feat(permissions): add admin page permission definitions

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Jason Fraley 2026-09-01 21:39:06 -04:00
parent b4bb328acd
commit e29b403d06

View file

@ -37,6 +37,18 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
permissions: [{ value: "system:admin-access", label: "Access Admin Panel" }],
},
// ---- Media ---------------------------------------------------------------
{
group: "Media",
permissions: [
{ value: "media:create", label: "Create" },
{ value: "media:read", label: "Read" },
{ value: "media:update", label: "Update" },
{ value: "media:delete", label: "Delete" },
{ value: "admin:media:manage", label: "Manage Admin Page" },
],
},
// ---- Users ---------------------------------------------------------------
{
group: "Users",
@ -47,6 +59,17 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "users:delete", label: "Delete Users" },
{ value: "users:unlock", label: "Unlock User Accounts" },
{ value: "users:assign-roles", label: "Assign Roles to Users" },
{ value: "admin:users:manage", label: "Manage Admin Page" },
],
},
{
group: "Roles",
permissions: [
{ value: "roles:create", label: "Create" },
{ value: "roles:read", label: "Read" },
{ value: "roles:update", label: "Update" },
{ value: "roles:delete", label: "Delete" },
{ value: "admin:roles:manage", label: "Manage Admin Page" },
],
},
{
@ -56,6 +79,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "ranks:read", label: "Read" },
{ value: "ranks:update", label: "Update" },
{ value: "ranks:delete", label: "Delete" },
{ value: "admin:ranks:manage", label: "Manage Admin Page" },
],
},
{
@ -65,6 +89,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "profiles:read", label: "Read" },
{ value: "profiles:update", label: "Update" },
{ value: "profiles:delete", label: "Delete" },
{ value: "admin:profiles:manage", label: "Manage Admin Page" },
],
},
{
@ -74,6 +99,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "awards:read", label: "Read" },
{ value: "awards:update", label: "Update" },
{ value: "awards:delete", label: "Delete" },
{ value: "admin:awards:manage", label: "Manage Admin Page" },
],
},
{
@ -83,6 +109,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "qualifications:read", label: "Read" },
{ value: "qualifications:update", label: "Update" },
{ value: "qualifications:delete", label: "Delete" },
{ value: "admin:qualifications:manage", label: "Manage Admin Page" },
],
},
{
@ -92,6 +119,17 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "assignments:read", label: "Read" },
{ value: "assignments:update", label: "Update" },
{ value: "assignments:delete", label: "Delete" },
{ value: "admin:assignments:manage", label: "Manage Admin Page" },
],
},
{
group: "Assignment Transfers",
permissions: [
{ value: "assignment-transfers:create", label: "Create" },
{ value: "assignment-transfers:read", label: "Read" },
{ value: "assignment-transfers:update", label: "Update" },
{ value: "assignment-transfers:delete", label: "Delete" },
{ value: "admin:assignment-transfers:manage", label: "Manage Admin Page" },
],
},
{
@ -101,6 +139,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "experience:read", label: "Read" },
{ value: "experience:update", label: "Update" },
{ value: "experience:delete", label: "Delete" },
{ value: "admin:experience:manage", label: "Manage Admin Page" },
],
},
{
@ -110,6 +149,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "user-notifications:read", label: "Read" },
{ value: "user-notifications:update", label: "Update" },
{ value: "user-notifications:delete", label: "Delete" },
{ value: "admin:user-notifications:manage", label: "Manage Admin Page" },
],
},
{
@ -119,6 +159,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "evaluations:read", label: "Read" },
{ value: "evaluations:update", label: "Update" },
{ value: "evaluations:delete", label: "Delete" },
{ value: "admin:evaluations:manage", label: "Manage Admin Page" },
],
},
@ -131,6 +172,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "missions:update", label: "Update" },
{ value: "missions:delete", label: "Delete" },
{ value: "missions:read-sensitive", label: "Read Sensitive Fields (server passwords)" },
{ value: "admin:missions:manage", label: "Manage Admin Page" },
],
},
{
@ -140,6 +182,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "mission-attendances:read", label: "Read" },
{ value: "mission-attendances:update", label: "Update" },
{ value: "mission-attendances:delete", label: "Delete" },
{ value: "admin:mission-attendances:manage", label: "Manage Admin Page" },
],
},
{
@ -149,6 +192,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "campaigns:read", label: "Read" },
{ value: "campaigns:update", label: "Update" },
{ value: "campaigns:delete", label: "Delete" },
{ value: "admin:campaigns:manage", label: "Manage Admin Page" },
],
},
{
@ -162,6 +206,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "factions:read", label: "Read" },
{ value: "factions:update", label: "Update" },
{ value: "factions:delete", label: "Delete" },
{ value: "admin:factions:manage", label: "Manage Admin Page" },
],
},
{
@ -171,6 +216,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "technologies:read", label: "Read" },
{ value: "technologies:update", label: "Update" },
{ value: "technologies:delete", label: "Delete" },
{ value: "admin:technologies:manage", label: "Manage Admin Page" },
],
},
@ -182,6 +228,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "assets:read", label: "Read" },
{ value: "assets:update", label: "Update" },
{ value: "assets:delete", label: "Delete" },
{ value: "admin:assets:manage", label: "Manage Admin Page" },
],
},
{
@ -191,6 +238,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "resources:read", label: "Read" },
{ value: "resources:update", label: "Update" },
{ value: "resources:delete", label: "Delete" },
{ value: "admin:resources:manage", label: "Manage Admin Page" },
],
},
{
@ -200,6 +248,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "vehicles:read", label: "Read" },
{ value: "vehicles:update", label: "Update" },
{ value: "vehicles:delete", label: "Delete" },
{ value: "admin:vehicles:manage", label: "Manage Admin Page" },
],
},
{
@ -209,6 +258,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "structures:read", label: "Read" },
{ value: "structures:update", label: "Update" },
{ value: "structures:delete", label: "Delete" },
{ value: "admin:structures:manage", label: "Manage Admin Page" },
],
},
{
@ -218,6 +268,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "shipments:read", label: "Read" },
{ value: "shipments:update", label: "Update" },
{ value: "shipments:delete", label: "Delete" },
{ value: "admin:shipments:manage", label: "Manage Admin Page" },
],
},
@ -229,6 +280,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "bank-accounts:read", label: "Read" },
{ value: "bank-accounts:update", label: "Update" },
{ value: "bank-accounts:delete", label: "Delete" },
{ value: "admin:bank-accounts:manage", label: "Manage Admin Page" },
],
},
{
@ -238,6 +290,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "bank-transactions:read", label: "Read" },
{ value: "bank-transactions:update", label: "Update" },
{ value: "bank-transactions:delete", label: "Delete" },
{ value: "admin:bank-transactions:manage", label: "Manage Admin Page" },
],
},
{
@ -247,6 +300,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "ledger-entries:read", label: "Read" },
{ value: "ledger-entries:update", label: "Update" },
{ value: "ledger-entries:delete", label: "Delete" },
{ value: "admin:ledger-entries:manage", label: "Manage Admin Page" },
],
},
@ -258,6 +312,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "locker-storages:read", label: "Read" },
{ value: "locker-storages:update", label: "Update" },
{ value: "locker-storages:delete", label: "Delete" },
{ value: "admin:locker-storages:manage", label: "Manage Admin Page" },
],
},
{
@ -267,6 +322,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "loadouts:read", label: "Read" },
{ value: "loadouts:update", label: "Update" },
{ value: "loadouts:delete", label: "Delete" },
{ value: "admin:loadouts:manage", label: "Manage Admin Page" },
],
},
@ -278,6 +334,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "market-listings:read", label: "Read" },
{ value: "market-listings:update", label: "Update" },
{ value: "market-listings:delete", label: "Delete" },
{ value: "admin:market-listings:manage", label: "Manage Admin Page" },
],
},
{
@ -287,6 +344,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "market-negotiations:read", label: "Read" },
{ value: "market-negotiations:update", label: "Update" },
{ value: "market-negotiations:delete", label: "Delete" },
{ value: "admin:market-negotiations:manage", label: "Manage Admin Page" },
],
},
@ -298,6 +356,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "projects:read", label: "Read" },
{ value: "projects:update", label: "Update" },
{ value: "projects:delete", label: "Delete" },
{ value: "admin:projects:manage", label: "Manage Admin Page" },
],
},
{
@ -307,6 +366,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "labels:read", label: "Read" },
{ value: "labels:update", label: "Update" },
{ value: "labels:delete", label: "Delete" },
{ value: "admin:labels:manage", label: "Manage Admin Page" },
],
},
{
@ -316,6 +376,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "sprints:read", label: "Read" },
{ value: "sprints:update", label: "Update" },
{ value: "sprints:delete", label: "Delete" },
{ value: "admin:sprints:manage", label: "Manage Admin Page" },
],
},
{
@ -325,6 +386,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "releases:read", label: "Read" },
{ value: "releases:update", label: "Update" },
{ value: "releases:delete", label: "Delete" },
{ value: "admin:releases:manage", label: "Manage Admin Page" },
],
},
{
@ -334,6 +396,17 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "tickets:read", label: "Read" },
{ value: "tickets:update", label: "Update" },
{ value: "tickets:delete", label: "Delete" },
{ value: "admin:tickets:manage", label: "Manage Admin Page" },
],
},
{
group: "Ticket Votes",
permissions: [
{ value: "ticket-votes:create", label: "Create" },
{ value: "ticket-votes:read", label: "Read" },
{ value: "ticket-votes:update", label: "Update" },
{ value: "ticket-votes:delete", label: "Delete" },
{ value: "admin:ticket-votes:manage", label: "Manage Admin Page" },
],
},
@ -345,6 +418,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "game-structures:read", label: "Read" },
{ value: "game-structures:update", label: "Update" },
{ value: "game-structures:delete", label: "Delete" },
{ value: "admin:game-structures:manage", label: "Manage Admin Page" },
],
},
{
@ -354,6 +428,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "game-vehicles:read", label: "Read" },
{ value: "game-vehicles:update", label: "Update" },
{ value: "game-vehicles:delete", label: "Delete" },
{ value: "admin:game-vehicles:manage", label: "Manage Admin Page" },
],
},
{
@ -363,6 +438,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "game-npcs:read", label: "Read" },
{ value: "game-npcs:update", label: "Update" },
{ value: "game-npcs:delete", label: "Delete" },
{ value: "admin:game-npcs:manage", label: "Manage Admin Page" },
],
},
{
@ -372,6 +448,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "game-hard-resources:read", label: "Read" },
{ value: "game-hard-resources:update", label: "Update" },
{ value: "game-hard-resources:delete", label: "Delete" },
{ value: "admin:game-hard-resources:manage", label: "Manage Admin Page" },
],
},
{
@ -381,6 +458,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "game-event-logs:read", label: "Read" },
{ value: "game-event-logs:update", label: "Update" },
{ value: "game-event-logs:delete", label: "Delete" },
{ value: "admin:game-event-logs:manage", label: "Manage Admin Page" },
],
},
@ -392,6 +470,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "maps:read", label: "Read" },
{ value: "maps:update", label: "Update" },
{ value: "maps:delete", label: "Delete" },
{ value: "admin:maps:manage", label: "Manage Admin Page" },
],
},
{
@ -401,6 +480,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "narrative-events:read", label: "Read" },
{ value: "narrative-events:update", label: "Update" },
{ value: "narrative-events:delete", label: "Delete" },
{ value: "admin:narrative-events:manage", label: "Manage Admin Page" },
],
},
@ -412,6 +492,7 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "mission-files:read", label: "Read" },
{ value: "mission-files:update", label: "Update" },
{ value: "mission-files:delete", label: "Delete" },
{ value: "admin:mission-files:manage", label: "Manage Admin Page" },
],
},
{
@ -421,6 +502,37 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ value: "mod-lists:read", label: "Read" },
{ value: "mod-lists:update", label: "Update" },
{ value: "mod-lists:delete", label: "Delete" },
{ value: "admin:mod-lists:manage", label: "Manage Admin Page" },
],
},
{
group: "Game Servers",
permissions: [
{ value: "game-servers:create", label: "Create" },
{ value: "game-servers:read", label: "Read" },
{ value: "game-servers:update", label: "Update" },
{ value: "game-servers:delete", label: "Delete" },
{ value: "admin:game-servers:manage", label: "Manage Admin Page" },
],
},
{
group: "Arma Sync Events",
permissions: [
{ value: "arma-sync-events:create", label: "Create" },
{ value: "arma-sync-events:read", label: "Read" },
{ value: "arma-sync-events:update", label: "Update" },
{ value: "arma-sync-events:delete", label: "Delete" },
{ value: "admin:arma-sync-events:manage", label: "Manage Admin Page" },
],
},
{
group: "Arma Commands",
permissions: [
{ value: "arma-commands:create", label: "Create" },
{ value: "arma-commands:read", label: "Read" },
{ value: "arma-commands:update", label: "Update" },
{ value: "arma-commands:delete", label: "Delete" },
{ value: "admin:arma-commands:manage", label: "Manage Admin Page" },
],
},
@ -478,182 +590,256 @@ export const ALL_PERMISSION_VALUES = PERMISSION_GROUPS.flatMap((g) =>
g.permissions.map((p) => p.value),
) as unknown as readonly [
"system:admin-access",
"media:create",
"media:read",
"media:update",
"media:delete",
"admin:media:manage",
"users:create",
"users:read",
"users:update",
"users:delete",
"users:unlock",
"users:assign-roles",
"admin:users:manage",
"roles:create",
"roles:read",
"roles:update",
"roles:delete",
"admin:roles:manage",
"ranks:create",
"ranks:read",
"ranks:update",
"ranks:delete",
"admin:ranks:manage",
"profiles:create",
"profiles:read",
"profiles:update",
"profiles:delete",
"admin:profiles:manage",
"awards:create",
"awards:read",
"awards:update",
"awards:delete",
"admin:awards:manage",
"qualifications:create",
"qualifications:read",
"qualifications:update",
"qualifications:delete",
"admin:qualifications:manage",
"assignments:create",
"assignments:read",
"assignments:update",
"assignments:delete",
"admin:assignments:manage",
"assignment-transfers:create",
"assignment-transfers:read",
"assignment-transfers:update",
"assignment-transfers:delete",
"admin:assignment-transfers:manage",
"experience:create",
"experience:read",
"experience:update",
"experience:delete",
"admin:experience:manage",
"user-notifications:create",
"user-notifications:read",
"user-notifications:update",
"user-notifications:delete",
"admin:user-notifications:manage",
"evaluations:create",
"evaluations:read",
"evaluations:update",
"evaluations:delete",
"admin:evaluations:manage",
"missions:create",
"missions:read",
"missions:update",
"missions:delete",
"missions:read-sensitive",
"admin:missions:manage",
"mission-attendances:create",
"mission-attendances:read",
"mission-attendances:update",
"mission-attendances:delete",
"admin:mission-attendances:manage",
"campaigns:create",
"campaigns:read",
"campaigns:update",
"campaigns:delete",
"admin:campaigns:manage",
"campaigns:manage",
"factions:create",
"factions:read",
"factions:update",
"factions:delete",
"admin:factions:manage",
"technologies:create",
"technologies:read",
"technologies:update",
"technologies:delete",
"admin:technologies:manage",
"assets:create",
"assets:read",
"assets:update",
"assets:delete",
"admin:assets:manage",
"resources:create",
"resources:read",
"resources:update",
"resources:delete",
"admin:resources:manage",
"vehicles:create",
"vehicles:read",
"vehicles:update",
"vehicles:delete",
"admin:vehicles:manage",
"structures:create",
"structures:read",
"structures:update",
"structures:delete",
"admin:structures:manage",
"shipments:create",
"shipments:read",
"shipments:update",
"shipments:delete",
"admin:shipments:manage",
"bank-accounts:create",
"bank-accounts:read",
"bank-accounts:update",
"bank-accounts:delete",
"admin:bank-accounts:manage",
"bank-transactions:create",
"bank-transactions:read",
"bank-transactions:update",
"bank-transactions:delete",
"admin:bank-transactions:manage",
"ledger-entries:create",
"ledger-entries:read",
"ledger-entries:update",
"ledger-entries:delete",
"admin:ledger-entries:manage",
"locker-storages:create",
"locker-storages:read",
"locker-storages:update",
"locker-storages:delete",
"admin:locker-storages:manage",
"loadouts:create",
"loadouts:read",
"loadouts:update",
"loadouts:delete",
"admin:loadouts:manage",
"market-listings:create",
"market-listings:read",
"market-listings:update",
"market-listings:delete",
"admin:market-listings:manage",
"market-negotiations:create",
"market-negotiations:read",
"market-negotiations:update",
"market-negotiations:delete",
"admin:market-negotiations:manage",
"projects:create",
"projects:read",
"projects:update",
"projects:delete",
"sprints:create",
"sprints:read",
"sprints:update",
"sprints:delete",
"admin:projects:manage",
"labels:create",
"labels:read",
"labels:update",
"labels:delete",
"admin:labels:manage",
"sprints:create",
"sprints:read",
"sprints:update",
"sprints:delete",
"admin:sprints:manage",
"releases:create",
"releases:read",
"releases:update",
"releases:delete",
"admin:releases:manage",
"tickets:create",
"tickets:read",
"tickets:update",
"tickets:delete",
"admin:tickets:manage",
"ticket-votes:create",
"ticket-votes:read",
"ticket-votes:update",
"ticket-votes:delete",
"admin:ticket-votes:manage",
"game-structures:create",
"game-structures:read",
"game-structures:update",
"game-structures:delete",
"admin:game-structures:manage",
"game-vehicles:create",
"game-vehicles:read",
"game-vehicles:update",
"game-vehicles:delete",
"admin:game-vehicles:manage",
"game-npcs:create",
"game-npcs:read",
"game-npcs:update",
"game-npcs:delete",
"admin:game-npcs:manage",
"game-hard-resources:create",
"game-hard-resources:read",
"game-hard-resources:update",
"game-hard-resources:delete",
"admin:game-hard-resources:manage",
"game-event-logs:create",
"game-event-logs:read",
"game-event-logs:update",
"game-event-logs:delete",
"admin:game-event-logs:manage",
"maps:create",
"maps:read",
"maps:update",
"maps:delete",
"admin:maps:manage",
"narrative-events:create",
"narrative-events:read",
"narrative-events:update",
"narrative-events:delete",
"admin:narrative-events:manage",
"mission-files:create",
"mission-files:read",
"mission-files:update",
"mission-files:delete",
"admin:mission-files:manage",
"mod-lists:create",
"mod-lists:read",
"mod-lists:update",
"mod-lists:delete",
"admin:mod-lists:manage",
"game-servers:create",
"game-servers:read",
"game-servers:update",
"game-servers:delete",
"admin:game-servers:manage",
"arma-sync-events:create",
"arma-sync-events:read",
"arma-sync-events:update",
"arma-sync-events:delete",
"admin:arma-sync-events:manage",
"arma-commands:create",
"arma-commands:read",
"arma-commands:update",
"arma-commands:delete",
"admin:arma-commands:manage",
"game-rules:read",
"game-rules:update",
"shims:read",
"shims:update",
"campaigns:manage",
"logistics:manage",
"intelligence:manage",
"profiles:intel_excerpt:update",
"banking:manage",
"tickets:staff",
"discord:staff",
"discord:announce",
"intelligence:manage",
"profiles:intel_excerpt:update",
];
/**