Skip to content

Commit d7b6409

Browse files
authored
Extract user roles from token claims (#776)
Signed-off-by: achour94 <[email protected]>
1 parent fb00bda commit d7b6409

File tree

3 files changed

+29
-14
lines changed

3 files changed

+29
-14
lines changed

src/components/topBar/UserInformationDialog.tsx

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import { Box, Dialog, DialogActions, DialogContent, DialogTitle, Grid, Typography } from '@mui/material';
99
import { FormattedMessage } from 'react-intl';
1010
import type { User } from 'oidc-client';
11-
import { useEffect, useState } from 'react';
11+
import { Fragment, useEffect, useState } from 'react';
1212
import { CancelButton } from '../inputs/reactHookForm/utils/CancelButton';
1313
import { fetchUserDetails } from '../../services/userAdmin';
1414
import { UserDetail } from '../../utils/types/types';
@@ -46,6 +46,9 @@ function UserInformationDialog({ openDialog, user, onClose }: UserInformationDia
4646
}
4747
}, [openDialog, user]);
4848

49+
const rolesString = user?.profile?.profile ?? '';
50+
const rolesList = rolesString ? rolesString.split('|').map((role) => role.trim()) : [];
51+
4952
return (
5053
<Dialog open={openDialog && !!user && !!userDetails} onClose={onClose}>
5154
<DialogTitle fontWeight="bold" sx={styles.DialogTitle}>
@@ -60,15 +63,23 @@ function UserInformationDialog({ openDialog, user, onClose }: UserInformationDia
6063
</Typography>
6164
</Grid>
6265
<Grid item xs={6}>
63-
<Typography>
64-
<FormattedMessage
65-
id={
66-
userDetails?.isAdmin
67-
? 'user-information-dialog/role-admin'
68-
: 'user-information-dialog/role-user'
69-
}
70-
/>
71-
</Typography>
66+
{rolesList.length > 0 ? (
67+
<Typography>
68+
{rolesList.map((role, index) => (
69+
<Fragment key={role}>
70+
{index > 0 && ' | '}
71+
<FormattedMessage
72+
id={`user-information-dialog/${role}`}
73+
defaultMessage={role}
74+
/>
75+
</Fragment>
76+
))}
77+
</Typography>
78+
) : (
79+
<Typography>
80+
<FormattedMessage id="user-information-dialog/no-roles" />
81+
</Typography>
82+
)}
7283
</Grid>
7384

7485
<Grid item xs={6}>

src/translations/en/topBarEn.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@ export const topBarEn = {
3434

3535
'user-information-dialog/title': 'User information',
3636
'user-information-dialog/role': 'Role',
37-
'user-information-dialog/role-user': 'Basic user',
38-
'user-information-dialog/role-admin': 'Admin',
37+
'user-information-dialog/UTILISATEURS': 'User',
38+
'user-information-dialog/ADMIN': 'Admin',
39+
'user-information-dialog/ADMIN_EXPLORE': 'Admin Explore',
40+
'user-information-dialog/no-roles': 'No roles',
3941
'user-information-dialog/profile': 'Profile',
4042
'user-information-dialog/no-profile': 'No profile',
4143
'user-information-dialog/quotas': 'User quotas',

src/translations/fr/topBarFr.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ export const topBarFr = {
3535

3636
'user-information-dialog/title': 'Informations utilisateur',
3737
'user-information-dialog/role': 'Rôle',
38-
'user-information-dialog/role-user': 'Utilisateur simple',
39-
'user-information-dialog/role-admin': 'Admin',
38+
'user-information-dialog/UTILISATEURS': 'Utilisateur',
39+
'user-information-dialog/ADMIN': 'Admin',
40+
'user-information-dialog/ADMIN_EXPLORE': 'Admin Explore',
41+
'user-information-dialog/no-roles': 'Pas de rôle',
4042
'user-information-dialog/profile': 'Profil',
4143
'user-information-dialog/no-profile': 'Pas de profil',
4244
'user-information-dialog/quotas': 'Quotas',

0 commit comments

Comments
 (0)