From 3c6f3eb741084609c08521d7838811a452d04034 Mon Sep 17 00:00:00 2001 From: Manus Date: Fri, 23 Jan 2026 11:49:46 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Restreindre=20les=20droits=20des?= =?UTF-8?q?=20formateurs=20:=20masquer=20les=20boutons=20de=20cr=C3=A9atio?= =?UTF-8?q?n/modification/suppression=20des=20apprenants=20pour=20les=20fo?= =?UTF-8?q?rmateurs=20(seuls=20les=20administrateurs=20peuvent=20les=20voi?= =?UTF-8?q?r)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/AdminApprenants.tsx | 67 ++++++++++++++++------------ todo.md | 1 + 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/client/src/pages/AdminApprenants.tsx b/client/src/pages/AdminApprenants.tsx index d680efb..62e4d19 100644 --- a/client/src/pages/AdminApprenants.tsx +++ b/client/src/pages/AdminApprenants.tsx @@ -12,8 +12,11 @@ import { useState, useMemo } from "react"; import { useLocation } from "wouter"; import { toast } from "sonner"; import { Skeleton } from "@/components/ui/skeleton"; +import { useAuth } from "@/_core/hooks/useAuth"; export default function AdminApprenants() { + const { user } = useAuth(); + const isAdmin = user?.role === 'admin'; const [, setLocation] = useLocation(); const [open, setOpen] = useState(false); const [editingId, setEditingId] = useState(null); @@ -123,18 +126,19 @@ export default function AdminApprenants() { Gérez les apprenants et leurs informations

- { - setOpen(isOpen); - if (!isOpen) resetForm(); - }}> - - - - -
+ {isAdmin && ( + { + setOpen(isOpen); + if (!isOpen) resetForm(); + }}> + + + + + {editingId ? "Modifier l'apprenant" : "Nouvel apprenant"} @@ -209,9 +213,10 @@ export default function AdminApprenants() { {editingId ? "Mettre à jour" : "Créer"} - - -
+ +
+
+ )} {/* Filtres et recherche */} @@ -324,20 +329,24 @@ export default function AdminApprenants() { > - - + {isAdmin && ( + <> + + + + )} diff --git a/todo.md b/todo.md index 9a6c37e..00fe146 100644 --- a/todo.md +++ b/todo.md @@ -1199,3 +1199,4 @@ - [ ] Ajouter validation date fin > date début dans la boîte de dialogue de modification des séquences - [x] Ajouter une validation frontend en temps réel dans les champs de date pour afficher un message d'erreur immédiat - [ ] Restreindre les droits des formateurs (pas de modification/suppression de formations et séquences) +- [ ] Restreindre les droits des formateurs pour qu'ils ne puissent pas créer/modifier/supprimer des apprenants