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:
@@ -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
@@ -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' },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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 = [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user