1
0
Fork 0
mirror of https://codeberg.org/MarkusThielker/next-ory.git synced 2025-04-13 13:08:41 +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);
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 && (
<InsufficientPermission
permission="admin.stack.status"
permission={permission.stack.status}
relation="access"
identityId={identityId}
classNames="col-span-1 md:col-span-4"

View file

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

View file

@ -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 && (
<InsufficientPermission
permission="admin.user"
relation="see"
permission={permission.user.it}
relation={relation.access}
identityId={identityId}
/>
)
@ -70,9 +69,8 @@ export default async function UserPage(
query={query}
permission={{
pmEditUser: pmEditUser,
pmBlockUser: pmBlockUser,
pmUnblockUser: pmUnblockUser,
pmDeleteUser: pmDeleteUser,
pmEditUserState: pmEditUserState,
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',
};