From ab4ecd1ccf1ea739b9ab981beab4e4c46eee6c81 Mon Sep 17 00:00:00 2001 From: Hyko Date: Sat, 25 Apr 2026 09:39:00 -0400 Subject: [PATCH] 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 --- src/core/users/README.md | 11 ++++------ src/core/users/constants.js | 44 ++++++++++--------------------------- src/core/users/db.js | 2 +- 3 files changed, 17 insertions(+), 40 deletions(-) diff --git a/src/core/users/README.md b/src/core/users/README.md index 3241c65..43cbf18 100644 --- a/src/core/users/README.md +++ b/src/core/users/README.md @@ -200,11 +200,11 @@ await updateUserById(user.id, { role: 'editor', email_verified: true }); const roles = await listRoles(); 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, { - name: 'Éditeur senior', - permissionKeys: [PERMISSIONS.CONTENT_EDIT, PERMISSIONS.CONTENT_PUBLISH], + name: 'Modérateur', + permissionKeys: [PERMISSIONS.USERS_VIEW, PERMISSIONS.USERS_EDIT], }); 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 ```js -const canEdit = await hasPermission(userId, PERMISSIONS.CONTENT_EDIT); +const canManageRoles = await hasPermission(userId, PERMISSIONS.ROLES_MANAGE); const keys = await getUserPermissions(userId); ``` @@ -230,11 +230,8 @@ const keys = await getUserPermissions(userId); | Groupe | Clés | |--------|------| | 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` | | Rôles | `roles.view`, `roles.manage` | -| Paramètres | `settings.view`, `settings.manage` | --- diff --git a/src/core/users/constants.js b/src/core/users/constants.js index 6d21c0f..01c874a 100644 --- a/src/core/users/constants.js +++ b/src/core/users/constants.js @@ -4,41 +4,21 @@ */ export const PERMISSIONS = { - ADMIN_ACCESS: 'admin.access', - CONTENT_VIEW: 'content.view', - CONTENT_CREATE: 'content.create', - CONTENT_EDIT: 'content.edit', - CONTENT_DELETE: 'content.delete', - CONTENT_PUBLISH: 'content.publish', - 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', + ADMIN_ACCESS: 'admin.access', + USERS_VIEW: 'users.view', + USERS_EDIT: 'users.edit', + USERS_DELETE: 'users.delete', + ROLES_VIEW: 'roles.view', + ROLES_MANAGE: 'roles.manage', }; 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: 'content.view', name: 'Voir le contenu', description: 'Permet de consulter les articles, pages et autres contenus.', group_name: 'Contenu' }, - { key: 'content.create', name: 'Créer du contenu', description: 'Permet de rédiger et soumettre de nouveaux contenus.', group_name: 'Contenu' }, - { key: 'content.edit', name: 'Modifier le contenu', description: 'Permet de mettre à jour des contenus existants.', group_name: 'Contenu' }, - { key: 'content.delete', name: 'Supprimer le contenu', description: 'Permet de supprimer définitivement des contenus.', group_name: 'Contenu' }, - { key: 'content.publish', name: 'Publier le contenu', description: 'Permet de rendre des contenus visibles publiquement.', group_name: 'Contenu' }, - { 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' }, + { key: 'admin.access', name: 'Accès au panneau admin', description: "Permet d'accéder à l'interface d'administration.", group_name: 'Administration' }, + { 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' }, ]; /** diff --git a/src/core/users/db.js b/src/core/users/db.js index bdf225e..9ba8f7b 100644 --- a/src/core/users/db.js +++ b/src/core/users/db.js @@ -3,7 +3,7 @@ import { generateId } from './password.js'; import { done, warn } from '@zen/core/shared/logger'; import { PERMISSION_DEFINITIONS } from './constants.js'; -const USER_ROLE_PERMISSIONS = ['content.view', 'media.view']; +const USER_ROLE_PERMISSIONS = []; const ROLE_TABLES = [ {