Checkpoint: Restreindre les droits des formateurs : masquer les boutons de création/modification/suppression des formations et séquences pour les formateurs (seuls les administrateurs peuvent les voir)

This commit is contained in:
Manus
2026-01-23 11:42:31 -05:00
parent 5d40b5be96
commit 953677467a
3 changed files with 59 additions and 42 deletions

View File

@@ -13,8 +13,11 @@ import { Plus, Pencil, Trash2, ExternalLink, Search, SlidersHorizontal } from "l
import { useState, useMemo } from "react";
import { toast } from "sonner";
import { Skeleton } from "@/components/ui/skeleton";
import { useAuth } from "@/_core/hooks/useAuth";
export default function AdminFormations() {
const { user } = useAuth();
const isAdmin = user?.role === 'admin';
const [open, setOpen] = useState(false);
const [editingId, setEditingId] = useState<number | null>(null);
const [searchTerm, setSearchTerm] = useState("");
@@ -130,12 +133,14 @@ export default function AdminFormations() {
setOpen(isOpen);
if (!isOpen) resetForm();
}}>
<DialogTrigger asChild>
<Button>
<Plus className="w-4 h-4 mr-2" />
Nouvelle formation
</Button>
</DialogTrigger>
{isAdmin && (
<DialogTrigger asChild>
<Button>
<Plus className="w-4 h-4 mr-2" />
Nouvelle formation
</Button>
</DialogTrigger>
)}
<DialogContent className="sm:max-w-[500px]">
<form onSubmit={handleSubmit}>
<DialogHeader>
@@ -301,22 +306,24 @@ export default function AdminFormations() {
</span>
</TableCell>
<TableCell className="text-right">
<div className="flex justify-end gap-2">
<Button
variant="ghost"
size="icon"
onClick={() => handleEdit(formation)}
>
<Pencil className="w-4 h-4" />
</Button>
<Button
variant="ghost"
size="icon"
onClick={() => handleDelete(formation.id)}
>
<Trash2 className="w-4 h-4 text-red-600" />
</Button>
</div>
{isAdmin && (
<div className="flex justify-end gap-2">
<Button
variant="ghost"
size="icon"
onClick={() => handleEdit(formation)}
>
<Pencil className="w-4 h-4" />
</Button>
<Button
variant="ghost"
size="icon"
onClick={() => handleDelete(formation.id)}
>
<Trash2 className="w-4 h-4 text-red-600" />
</Button>
</div>
)}
</TableCell>
</TableRow>
))}