1
0
Fork 0
mirror of https://codeberg.org/MarkusThielker/next-ory.git synced 2025-04-16 13:49:28 +00:00

NORY-59: introduce permission constants

This commit is contained in:
Markus Thielker 2025-04-04 19:32:26 +02:00
parent 3693b0b1f9
commit 86412e0133
4 changed files with 29 additions and 16 deletions

View file

@ -10,7 +10,7 @@ export default async function RootPage() {
await requireRole('admin', identityId); 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 kratos = pmAccessStackStatus && await kratosMetadata();
const hydra = pmAccessStackStatus && await hydraMetadata(); const hydra = pmAccessStackStatus && await hydraMetadata();
@ -26,7 +26,7 @@ export default async function RootPage() {
{ {
!pmAccessStackStatus && ( !pmAccessStackStatus && (
<InsufficientPermission <InsufficientPermission
permission="admin.stack.status" permission={permission.stack.status}
relation="access" relation="access"
identityId={identityId} identityId={identityId}
classNames="col-span-1 md:col-span-4" classNames="col-span-1 md:col-span-4"

View file

@ -35,9 +35,8 @@ interface IdentityDataTableProps {
query: string; query: string;
permission: { permission: {
pmEditUser: boolean; pmEditUser: boolean;
pmBlockUser: boolean;
pmUnblockUser: boolean;
pmDeleteUser: boolean; pmDeleteUser: boolean;
pmEditUserState: boolean;
pmDeleteUserSession: boolean; pmDeleteUserSession: boolean;
}; };
} }
@ -156,7 +155,7 @@ export function IdentityDataTable({ data, page, query, permission }: IdentityDat
setCurrentIdentity(identity); setCurrentIdentity(identity);
setBlockIdentityVisible(true); setBlockIdentityVisible(true);
}} }}
disabled={!permission.pmBlockUser} disabled={!permission.pmEditUserState}
className="flex items-center space-x-2 text-red-500"> className="flex items-center space-x-2 text-red-500">
<UserX className="h-4 w-4"/> <UserX className="h-4 w-4"/>
<span>Block identity</span> <span>Block identity</span>
@ -169,7 +168,7 @@ export function IdentityDataTable({ data, page, query, permission }: IdentityDat
setCurrentIdentity(identity); setCurrentIdentity(identity);
setUnblockIdentityVisible(true); setUnblockIdentityVisible(true);
}} }}
disabled={!permission.pmUnblockUser} disabled={!permission.pmEditUserState}
className="flex items-center space-x-2 text-red-500"> className="flex items-center space-x-2 text-red-500">
<UserCheck className="h-4 w-4"/> <UserCheck className="h-4 w-4"/>
<span>Unblock identity</span> <span>Unblock identity</span>

View file

@ -19,12 +19,11 @@ export default async function UserPage(
await requireRole('admin', identityId); await requireRole('admin', identityId);
const pmAccessUser = await checkPermission('admin.user', 'access', identityId); const pmAccessUser = await checkPermission(permission.user.it, relation.access, identityId);
const pmEditUser = await checkPermission('admin.user', 'edit', identityId); const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId);
const pmBlockUser = await checkPermission('admin.user', 'block', identityId); const pmDeleteUser = await checkPermission(permission.user.it, relation.delete, identityId);
const pmUnblockUser = await checkPermission('admin.user', 'unblock', identityId); const pmEditUserState = await checkPermission(permission.user.state, relation.edit, identityId);
const pmDeleteUser = await checkPermission('admin.user', 'delete', identityId); const pmDeleteUserSession = await checkPermission(permission.user.session, relation.delete, identityId);
const pmDeleteUserSession = await checkPermission('admin.user.session', 'delete', identityId);
const params = await searchParams; const params = await searchParams;
@ -48,8 +47,8 @@ export default async function UserPage(
{ {
!pmAccessUser && ( !pmAccessUser && (
<InsufficientPermission <InsufficientPermission
permission="admin.user" permission={permission.user.it}
relation="see" relation={relation.access}
identityId={identityId} identityId={identityId}
/> />
) )
@ -70,9 +69,8 @@ export default async function UserPage(
query={query} query={query}
permission={{ permission={{
pmEditUser: pmEditUser, pmEditUser: pmEditUser,
pmBlockUser: pmBlockUser,
pmUnblockUser: pmUnblockUser,
pmDeleteUser: pmDeleteUser, pmDeleteUser: pmDeleteUser,
pmEditUserState: pmEditUserState,
pmDeleteUserSession: pmDeleteUserSession, pmDeleteUserSession: pmDeleteUserSession,
}} }}
/> />

View file

@ -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',
};