Checkpoint: Restreindre les droits des formateurs : masquer les boutons de création/modification/suppression des apprenants pour les formateurs (seuls les administrateurs peuvent les voir)
This commit is contained in:
@@ -12,8 +12,11 @@ import { useState, useMemo } from "react";
|
|||||||
import { useLocation } from "wouter";
|
import { useLocation } from "wouter";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import { Skeleton } from "@/components/ui/skeleton";
|
import { Skeleton } from "@/components/ui/skeleton";
|
||||||
|
import { useAuth } from "@/_core/hooks/useAuth";
|
||||||
|
|
||||||
export default function AdminApprenants() {
|
export default function AdminApprenants() {
|
||||||
|
const { user } = useAuth();
|
||||||
|
const isAdmin = user?.role === 'admin';
|
||||||
const [, setLocation] = useLocation();
|
const [, setLocation] = useLocation();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [editingId, setEditingId] = useState<number | null>(null);
|
const [editingId, setEditingId] = useState<number | null>(null);
|
||||||
@@ -123,6 +126,7 @@ export default function AdminApprenants() {
|
|||||||
Gérez les apprenants et leurs informations
|
Gérez les apprenants et leurs informations
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
{isAdmin && (
|
||||||
<Dialog open={open} onOpenChange={(isOpen) => {
|
<Dialog open={open} onOpenChange={(isOpen) => {
|
||||||
setOpen(isOpen);
|
setOpen(isOpen);
|
||||||
if (!isOpen) resetForm();
|
if (!isOpen) resetForm();
|
||||||
@@ -212,6 +216,7 @@ export default function AdminApprenants() {
|
|||||||
</form>
|
</form>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Filtres et recherche */}
|
{/* Filtres et recherche */}
|
||||||
@@ -324,6 +329,8 @@ export default function AdminApprenants() {
|
|||||||
>
|
>
|
||||||
<Eye className="w-4 h-4 text-blue-600" />
|
<Eye className="w-4 h-4 text-blue-600" />
|
||||||
</Button>
|
</Button>
|
||||||
|
{isAdmin && (
|
||||||
|
<>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="icon"
|
size="icon"
|
||||||
@@ -338,6 +345,8 @@ export default function AdminApprenants() {
|
|||||||
>
|
>
|
||||||
<Trash2 className="w-4 h-4 text-red-600" />
|
<Trash2 className="w-4 h-4 text-red-600" />
|
||||||
</Button>
|
</Button>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|||||||
1
todo.md
1
todo.md
@@ -1199,3 +1199,4 @@
|
|||||||
- [ ] Ajouter validation date fin > date début dans la boîte de dialogue de modification des séquences
|
- [ ] 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
|
- [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 (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
|
||||||
|
|||||||
Reference in New Issue
Block a user