refactor(users): remove content, media, and settings permissions

- strip content.*, media.*, and settings.* permission keys from PERMISSIONS constant
- remove corresponding entries from PERMISSION_DEFINITIONS
- drop content and media permission groups from db seed data
- update README examples and permission table to reflect reduced scope
This commit is contained in:
2026-04-25 09:39:00 -04:00
parent 2f91a8bcd3
commit ab4ecd1ccf
3 changed files with 17 additions and 40 deletions
+4 -7
View File
@@ -200,11 +200,11 @@ await updateUserById(user.id, { role: 'editor', email_verified: true });
const roles = await listRoles(); const roles = await listRoles();
const role = await getRoleById(id); const role = await getRoleById(id);
const role = await createRole({ name: 'Éditeur', description: 'Peut publier du contenu', color: '#3b82f6' }); const role = await createRole({ name: 'Modérateur', description: 'Peut gérer les utilisateurs', color: '#3b82f6' });
await updateRole(roleId, { await updateRole(roleId, {
name: 'Éditeur senior', name: 'Modérateur',
permissionKeys: [PERMISSIONS.CONTENT_EDIT, PERMISSIONS.CONTENT_PUBLISH], permissionKeys: [PERMISSIONS.USERS_VIEW, PERMISSIONS.USERS_EDIT],
}); });
await deleteRole(roleId); // impossible sur les rôles système await deleteRole(roleId); // impossible sur les rôles système
@@ -221,7 +221,7 @@ Les rôles système (`is_system = true`) ne peuvent pas être renommés ni suppr
### Permissions ### Permissions
```js ```js
const canEdit = await hasPermission(userId, PERMISSIONS.CONTENT_EDIT); const canManageRoles = await hasPermission(userId, PERMISSIONS.ROLES_MANAGE);
const keys = await getUserPermissions(userId); const keys = await getUserPermissions(userId);
``` ```
@@ -230,11 +230,8 @@ const keys = await getUserPermissions(userId);
| Groupe | Clés | | Groupe | Clés |
|--------|------| |--------|------|
| Administration | `admin.access` | | Administration | `admin.access` |
| Contenu | `content.view`, `content.create`, `content.edit`, `content.delete`, `content.publish` |
| Médias | `media.view`, `media.upload`, `media.delete` |
| Utilisateurs | `users.view`, `users.edit`, `users.delete` | | Utilisateurs | `users.view`, `users.edit`, `users.delete` |
| Rôles | `roles.view`, `roles.manage` | | Rôles | `roles.view`, `roles.manage` |
| Paramètres | `settings.view`, `settings.manage` |
--- ---
+12 -32
View File
@@ -4,41 +4,21 @@
*/ */
export const PERMISSIONS = { export const PERMISSIONS = {
ADMIN_ACCESS: 'admin.access', ADMIN_ACCESS: 'admin.access',
CONTENT_VIEW: 'content.view', USERS_VIEW: 'users.view',
CONTENT_CREATE: 'content.create', USERS_EDIT: 'users.edit',
CONTENT_EDIT: 'content.edit', USERS_DELETE: 'users.delete',
CONTENT_DELETE: 'content.delete', ROLES_VIEW: 'roles.view',
CONTENT_PUBLISH: 'content.publish', ROLES_MANAGE: 'roles.manage',
MEDIA_VIEW: 'media.view',
MEDIA_UPLOAD: 'media.upload',
MEDIA_DELETE: 'media.delete',
USERS_VIEW: 'users.view',
USERS_EDIT: 'users.edit',
USERS_DELETE: 'users.delete',
ROLES_VIEW: 'roles.view',
ROLES_MANAGE: 'roles.manage',
SETTINGS_VIEW: 'settings.view',
SETTINGS_MANAGE: 'settings.manage',
}; };
export const PERMISSION_DEFINITIONS = [ export const PERMISSION_DEFINITIONS = [
{ key: 'admin.access', name: 'Accès au panneau admin', description: "Permet d'accéder à l'interface d'administration.", group_name: 'Administration' }, { key: 'admin.access', name: 'Accès au panneau admin', description: "Permet d'accéder à l'interface d'administration.", group_name: 'Administration' },
{ key: 'content.view', name: 'Voir le contenu', description: 'Permet de consulter les articles, pages et autres contenus.', group_name: 'Contenu' }, { key: 'users.view', name: 'Voir les utilisateurs', description: 'Permet de consulter la liste des membres et leurs profils.', group_name: 'Utilisateurs' },
{ key: 'content.create', name: 'Créer du contenu', description: 'Permet de rédiger et soumettre de nouveaux contenus.', group_name: 'Contenu' }, { key: 'users.edit', name: 'Modifier les utilisateurs', description: 'Permet de changer les informations et les rôles des membres.', group_name: 'Utilisateurs' },
{ key: 'content.edit', name: 'Modifier le contenu', description: 'Permet de mettre à jour des contenus existants.', group_name: 'Contenu' }, { key: 'users.delete', name: 'Supprimer des utilisateurs', description: 'Permet de supprimer des comptes membres.', group_name: 'Utilisateurs' },
{ key: 'content.delete', name: 'Supprimer le contenu', description: 'Permet de supprimer définitivement des contenus.', group_name: 'Contenu' }, { key: 'roles.view', name: 'Voir les rôles', description: 'Permet de consulter la liste des rôles et leurs permissions.', group_name: 'Rôles' },
{ key: 'content.publish', name: 'Publier le contenu', description: 'Permet de rendre des contenus visibles publiquement.', group_name: 'Contenu' }, { key: 'roles.manage', name: 'Gérer les rôles', description: 'Permet de créer, modifier et supprimer des rôles.', group_name: 'Rôles' },
{ key: 'media.view', name: 'Voir les médias', description: 'Permet de parcourir la médiathèque.', group_name: 'Médias' },
{ key: 'media.upload', name: 'Téléverser des médias', description: 'Permet d\'uploader des images, vidéos et fichiers.', group_name: 'Médias' },
{ key: 'media.delete', name: 'Supprimer des médias', description: 'Permet de supprimer des fichiers de la médiathèque.', group_name: 'Médias' },
{ key: 'users.view', name: 'Voir les utilisateurs', description: 'Permet de consulter la liste des membres et leurs profils.', group_name: 'Utilisateurs' },
{ key: 'users.edit', name: 'Modifier les utilisateurs', description: 'Permet de changer les informations et les rôles des membres.', group_name: 'Utilisateurs' },
{ key: 'users.delete', name: 'Supprimer des utilisateurs', description: 'Permet de supprimer des comptes membres.', group_name: 'Utilisateurs' },
{ key: 'roles.view', name: 'Voir les rôles', description: 'Permet de consulter la liste des rôles et leurs permissions.', group_name: 'Rôles' },
{ key: 'roles.manage', name: 'Gérer les rôles', description: 'Permet de créer, modifier et supprimer des rôles.', group_name: 'Rôles' },
{ key: 'settings.view', name: 'Voir les paramètres', description: 'Permet de consulter la configuration du site.', group_name: 'Paramètres' },
{ key: 'settings.manage', name: 'Gérer les paramètres', description: 'Permet de modifier la configuration et les réglages du site.', group_name: 'Paramètres' },
]; ];
/** /**
+1 -1
View File
@@ -3,7 +3,7 @@ import { generateId } from './password.js';
import { done, warn } from '@zen/core/shared/logger'; import { done, warn } from '@zen/core/shared/logger';
import { PERMISSION_DEFINITIONS } from './constants.js'; import { PERMISSION_DEFINITIONS } from './constants.js';
const USER_ROLE_PERMISSIONS = ['content.view', 'media.view']; const USER_ROLE_PERMISSIONS = [];
const ROLE_TABLES = [ const ROLE_TABLES = [
{ {