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:
parent
3693b0b1f9
commit
86412e0133
4 changed files with 29 additions and 16 deletions
|
@ -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"
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
16
dashboard/src/lib/permission.ts
Normal file
16
dashboard/src/lib/permission.ts
Normal 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',
|
||||||
|
};
|
Loading…
Add table
Reference in a new issue