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

NORY-59: protect all missing cards in identity details

This commit is contained in:
Markus Thielker 2025-04-06 15:08:05 +02:00
parent 85234b4465
commit 5494233e59
2 changed files with 118 additions and 90 deletions

View file

@ -92,7 +92,10 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId); const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId);
const pmDeleteUser = await checkPermission(permission.user.it, relation.delete, identityId); const pmDeleteUser = await checkPermission(permission.user.it, relation.delete, identityId);
const pmAccessUserTraits = await checkPermission(permission.user.trait, relation.access, identityId); const pmAccessUserTrait = await checkPermission(permission.user.trait, relation.access, identityId);
const pmEditUserTraits = await checkPermission(permission.user.trait, relation.edit, identityId);
const pmAccessUserAddress = await checkPermission(permission.user.address, relation.access, identityId);
const pmAccessUserCredential = await checkPermission(permission.user.credential, relation.access, identityId);
const pmEditUserState = await checkPermission(permission.user.state, relation.edit, identityId); const pmEditUserState = await checkPermission(permission.user.state, relation.edit, identityId);
const pmAccessUserSession = await checkPermission(permission.user.session, relation.access, identityId); const pmAccessUserSession = await checkPermission(permission.user.session, relation.access, identityId);
const pmDeleteUserSession = await checkPermission(permission.user.session, relation.delete, identityId); const pmDeleteUserSession = await checkPermission(permission.user.session, relation.delete, identityId);
@ -114,7 +117,6 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
message="The identity you are trying to see exists but has no identifiable address"/>; message="The identity you are trying to see exists but has no identifiable address"/>;
} }
const detailIdentitySessions = pmAccessUserSession && await listIdentitySessions(detailIdentityId); const detailIdentitySessions = pmAccessUserSession && await listIdentitySessions(detailIdentityId);
const detailIdentitySchema = await getIdentitySchema(detailIdentity.schema_id) const detailIdentitySchema = await getIdentitySchema(detailIdentity.schema_id)
@ -133,7 +135,7 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
</div> </div>
<div className="grid grid-cols-1 xl:grid-cols-2 gap-4"> <div className="grid grid-cols-1 xl:grid-cols-2 gap-4">
{ {
pmAccessUserTraits ? pmAccessUserTrait ?
<Card className="row-span-3"> <Card className="row-span-3">
<CardHeader> <CardHeader>
<CardTitle>Traits</CardTitle> <CardTitle>Traits</CardTitle>
@ -170,6 +172,8 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
/> />
</CardContent> </CardContent>
</Card> </Card>
{
pmAccessUserAddress ?
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Addresses</CardTitle> <CardTitle>Addresses</CardTitle>
@ -215,15 +219,32 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
</Table> </Table>
</CardContent> </CardContent>
</Card> </Card>
:
<InsufficientPermission
permission={permission.user.address}
relation={relation.access}
identityId={identityId}/>
}
{
pmAccessUserCredential ?
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Credentials</CardTitle> <CardTitle>Credentials</CardTitle>
<CardDescription>All authentication mechanisms registered with this identity</CardDescription> <CardDescription>All authentication mechanisms registered with this
identity</CardDescription>
</CardHeader> </CardHeader>
<CardContent className="space-y-4"> <CardContent className="space-y-4">
<IdentityCredentials identity={detailIdentity}/> <IdentityCredentials identity={detailIdentity}/>
</CardContent> </CardContent>
</Card> </Card>
:
<InsufficientPermission
permission={permission.user.credential}
relation={relation.access}
identityId={identityId}/>
}
{
pmAccessUserSession ?
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Sessions</CardTitle> <CardTitle>Sessions</CardTitle>
@ -274,6 +295,12 @@ export default async function UserDetailsPage({ params }: { params: Promise<{ id
} }
</CardContent> </CardContent>
</Card> </Card>
:
<InsufficientPermission
permission={permission.user.session}
relation={relation.access}
identityId={identityId}/>
}
</div> </div>
</div> </div>
); );

View file

@ -5,6 +5,7 @@ export const permission = {
}, },
user: { user: {
it: 'admin.user', it: 'admin.user',
address: 'admin.user.address',
code: 'admin.user.code', code: 'admin.user.code',
credential: 'admin.user.credential', credential: 'admin.user.credential',
link: 'admin.user.link', link: 'admin.user.link',