From 7a9c205c60dbca9620d56273826df0ebfa5ad5ba Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:11:13 +0330 Subject: [PATCH] Import source: src/lib/permissions Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- src/lib/permissions.ts | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/lib/permissions.ts diff --git a/src/lib/permissions.ts b/src/lib/permissions.ts new file mode 100644 index 0000000..b2035d8 --- /dev/null +++ b/src/lib/permissions.ts @@ -0,0 +1,51 @@ +export type Permission = + | "dashboard:read" + | "tools:read" + | "websites:manage" + | "domains:manage" + | "files:manage" + | "databases:manage" + | "email:manage" + | "metrics:read" + | "security:manage" + | "software:manage" + | "advanced:manage" + | "servers:manage" + | "users:manage" + | "resellers:manage" + | "backups:manage" + | "automation:manage" + | "notifications:read" + | "audit:read" + | "support:manage" + | "settings:manage"; + +export const rolePermissions: Record = { + "Super administrator": [ + "dashboard:read", + "tools:read", + "websites:manage", + "domains:manage", + "files:manage", + "databases:manage", + "email:manage", + "metrics:read", + "security:manage", + "software:manage", + "advanced:manage", + "servers:manage", + "users:manage", + "resellers:manage", + "backups:manage", + "automation:manage", + "notifications:read", + "audit:read", + "support:manage", + "settings:manage", + ], + "Read-only auditor": ["dashboard:read", "tools:read", "metrics:read", "audit:read"], +}; + +export function can(permissions: Permission[], permission: Permission) { + return permissions.includes(permission); +}