From 6b80e93bf02b3e3ba9c41037dafc0c9545d6957a Mon Sep 17 00:00:00 2001 From: Markus Thielker Date: Fri, 4 Apr 2025 19:32:26 +0200 Subject: [PATCH] NORY-59: introduce permission constants --- dashboard/src/app/(inside)/page.tsx | 4 ++-- dashboard/src/app/(inside)/user/data-table.tsx | 7 +++---- dashboard/src/app/(inside)/user/page.tsx | 18 ++++++++---------- dashboard/src/lib/permission.ts | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 dashboard/src/lib/permission.ts diff --git a/dashboard/src/app/(inside)/page.tsx b/dashboard/src/app/(inside)/page.tsx index 778d24a..dad9358 100644 --- a/dashboard/src/app/(inside)/page.tsx +++ b/dashboard/src/app/(inside)/page.tsx @@ -10,7 +10,7 @@ export default async function RootPage() { await requireRole('admin', identityId); - const pmAccessStackStatus = await checkPermission('admin.stack.status', 'access', identityId); + const pmAccessStackStatus = await checkPermission(permission.stack.status, relation.access, identityId); const kratos = pmAccessStackStatus && await kratosMetadata(); const hydra = pmAccessStackStatus && await hydraMetadata(); @@ -26,7 +26,7 @@ export default async function RootPage() { { !pmAccessStackStatus && ( Block identity @@ -169,7 +168,7 @@ export function IdentityDataTable({ data, page, query, permission }: IdentityDat setCurrentIdentity(identity); setUnblockIdentityVisible(true); }} - disabled={!permission.pmUnblockUser} + disabled={!permission.pmEditUserState} className="flex items-center space-x-2 text-red-500"> Unblock identity diff --git a/dashboard/src/app/(inside)/user/page.tsx b/dashboard/src/app/(inside)/user/page.tsx index b889ecf..3e52891 100644 --- a/dashboard/src/app/(inside)/user/page.tsx +++ b/dashboard/src/app/(inside)/user/page.tsx @@ -19,12 +19,11 @@ export default async function UserPage( await requireRole('admin', identityId); - const pmAccessUser = await checkPermission('admin.user', 'access', identityId); - const pmEditUser = await checkPermission('admin.user', 'edit', identityId); - const pmBlockUser = await checkPermission('admin.user', 'block', identityId); - const pmUnblockUser = await checkPermission('admin.user', 'unblock', identityId); - const pmDeleteUser = await checkPermission('admin.user', 'delete', identityId); - const pmDeleteUserSession = await checkPermission('admin.user.session', 'delete', identityId); + const pmAccessUser = await checkPermission(permission.user.it, relation.access, identityId); + const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId); + const pmDeleteUser = await checkPermission(permission.user.it, relation.delete, identityId); + const pmEditUserState = await checkPermission(permission.user.state, relation.edit, identityId); + const pmDeleteUserSession = await checkPermission(permission.user.session, relation.delete, identityId); const params = await searchParams; @@ -48,8 +47,8 @@ export default async function UserPage( { !pmAccessUser && ( ) @@ -70,9 +69,8 @@ export default async function UserPage( query={query} permission={{ pmEditUser: pmEditUser, - pmBlockUser: pmBlockUser, - pmUnblockUser: pmUnblockUser, pmDeleteUser: pmDeleteUser, + pmEditUserState: pmEditUserState, pmDeleteUserSession: pmDeleteUserSession, }} /> diff --git a/dashboard/src/lib/permission.ts b/dashboard/src/lib/permission.ts new file mode 100644 index 0000000..7bced61 --- /dev/null +++ b/dashboard/src/lib/permission.ts @@ -0,0 +1,16 @@ +const permission = { + stack: { + status: 'admin.stack.status', + }, + user: { + it: 'admin.user', + session: 'admin.user.session', + state: 'admin.user.state', + }, +}; + +const relation = { + access: 'access', + edit: 'edit', + delete: 'delete', +};