diff --git a/attached_assets/image_1755119115097.png b/attached_assets/image_1755119115097.png new file mode 100644 index 0000000..c0cb20f Binary files /dev/null and b/attached_assets/image_1755119115097.png differ diff --git a/client/src/lib/permissions.ts b/client/src/lib/permissions.ts index 00af99a..0cc6513 100644 --- a/client/src/lib/permissions.ts +++ b/client/src/lib/permissions.ts @@ -12,7 +12,9 @@ export type Module = | 'publicity' | 'customer-orders' | 'dlc' - | 'tasks'; + | 'tasks' + | 'admin' + | 'backups'; // Définition des permissions par module et par rôle const PERMISSIONS: Record> = { @@ -86,6 +88,22 @@ const PERMISSIONS: Record> = { directeur: ['view', 'create', 'edit', 'delete', 'validate'], manager: ['view', 'validate'], employee: ['view'] + }, + + // Administration générale - Admin seulement + admin: { + admin: ['view', 'create', 'edit', 'delete', 'manage'], + directeur: [], + manager: [], + employee: [] + }, + + // Sauvegardes - Admin seulement + backups: { + admin: ['view', 'create', 'edit', 'delete', 'manage'], + directeur: [], + manager: [], + employee: [] } }; diff --git a/client/src/pages/BackupManager.tsx b/client/src/pages/BackupManager.tsx index d80fdb1..f1146da 100644 --- a/client/src/pages/BackupManager.tsx +++ b/client/src/pages/BackupManager.tsx @@ -39,8 +39,8 @@ export default function BackupManager() { const queryClient = useQueryClient(); const [deletingBackup, setDeletingBackup] = useState(null); - // Check permissions - const canManageBackups = hasPermission(user?.role || '', 'admin', 'manage'); + // Check permissions - Seulement les admins peuvent gérer les sauvegardes + const canManageBackups = hasPermission(user?.role || '', 'backups', 'manage'); // Fetch backup list const { data: backups = [], isLoading, error } = useQuery({