mirror of
https://github.com/BreizhHardware/Site-comptage-heure.git
synced 2026-01-18 16:17:28 +01:00
feat: extend user role access to include ADMIN for fetching users and route access
This commit is contained in:
@@ -110,7 +110,7 @@ export default function AdminPage() {
|
||||
}, [session, status, router]);
|
||||
|
||||
useEffect(() => {
|
||||
if (session?.user?.role === 'SUPER_ADMIN') {
|
||||
if (session?.user?.role === 'SUPER_ADMIN' || session?.user?.role === 'ADMIN') {
|
||||
fetchUsers();
|
||||
}
|
||||
}, [session]);
|
||||
@@ -508,37 +508,41 @@ export default function AdminPage() {
|
||||
<TableCell>{userMap[userId]?.name}</TableCell>
|
||||
<TableCell>{formatHours(total)}</TableCell>
|
||||
<TableCell>
|
||||
{userMap[userId]?.role === 'SUPER_ADMIN' ? (
|
||||
'Super Admin'
|
||||
{isSuperAdmin ? (
|
||||
userMap[userId]?.role === 'SUPER_ADMIN' ? (
|
||||
'Super Admin'
|
||||
) : (
|
||||
<>
|
||||
<Button
|
||||
onClick={() => {
|
||||
setSelectedUser({
|
||||
id: userId,
|
||||
name: userMap[userId]?.name,
|
||||
});
|
||||
setForceDelete(false);
|
||||
setDialogOpen(true);
|
||||
}}
|
||||
variant="destructive"
|
||||
className="mr-2"
|
||||
>
|
||||
Supprimer
|
||||
</Button>
|
||||
<Button
|
||||
onClick={() => {
|
||||
setSelectedUserForReset({
|
||||
id: userId,
|
||||
name: userMap[userId]?.name,
|
||||
});
|
||||
setResetPasswordDialog(true);
|
||||
}}
|
||||
variant="outline"
|
||||
>
|
||||
Réinitialiser le mot de passe
|
||||
</Button>
|
||||
</>
|
||||
)
|
||||
) : (
|
||||
<>
|
||||
<Button
|
||||
onClick={() => {
|
||||
setSelectedUser({
|
||||
id: userId,
|
||||
name: userMap[userId]?.name,
|
||||
});
|
||||
setForceDelete(false);
|
||||
setDialogOpen(true);
|
||||
}}
|
||||
variant="destructive"
|
||||
className="mr-2"
|
||||
>
|
||||
Supprimer
|
||||
</Button>
|
||||
<Button
|
||||
onClick={() => {
|
||||
setSelectedUserForReset({
|
||||
id: userId,
|
||||
name: userMap[userId]?.name,
|
||||
});
|
||||
setResetPasswordDialog(true);
|
||||
}}
|
||||
variant="outline"
|
||||
>
|
||||
Réinitialiser le mot de passe
|
||||
</Button>
|
||||
</>
|
||||
userMap[userId]?.role === 'SUPER_ADMIN' ? 'Gestionnaire' : userMap[userId]?.role === 'ADMIN' ? 'Bureau' : 'Membre'
|
||||
)}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
|
||||
@@ -7,7 +7,7 @@ export const dynamic = 'force-dynamic';
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const session = await getServerSession(authOptions);
|
||||
if (!session || session.user.role !== 'SUPER_ADMIN') {
|
||||
if (!session || (session.user.role !== 'ADMIN' && session.user.role !== 'SUPER_ADMIN')) {
|
||||
return NextResponse.json({ error: 'Accès refusé' }, { status: 403 });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user