- Créer lib/permissions.ts avec toutes les fonctions de vérification - Protéger routes API: facturation, cotisations, virements (bloquer AGENT) - Protéger routes API: contrats (bloquer COMPTA) - Protéger routes API: gestion utilisateurs (bloquer AGENT/COMPTA) - Empêcher ADMIN de modifier/révoquer/créer SUPER_ADMIN - Ajouter documentation complète dans PERMISSIONS_MATRIX.md Système à 5 niveaux: - STAFF (équipe Odentas) - SUPER_ADMIN (admin principal, 1 par org, protégé) - ADMIN (admins secondaires) - AGENT (opérationnel: contrats/paies/salariés) - COMPTA (financier lecture seule: cotisations/virements/factures)
11 KiB
Matrice des Permissions - Espace Paie Odentas
Vue d'ensemble
Le système de permissions de l'Espace Paie Odentas repose sur 5 rôles hiérarchiques :
- STAFF - Équipe Odentas (super-administrateurs globaux)
- SUPER_ADMIN - Administrateur principal de l'organisation (1 seul par organisation)
- ADMIN - Administrateurs secondaires (plusieurs possibles)
- AGENT - Opérateurs RH (gestion contrats/paies/salariés uniquement)
- COMPTA - Comptables (accès financier en lecture seule)
Tableau Récapitulatif des Permissions
| Ressource/Action | STAFF | SUPER_ADMIN | ADMIN | AGENT | COMPTA |
|---|---|---|---|---|---|
| CONTRATS | |||||
| Voir liste contrats | ✅ | ✅ | ✅ | ✅ | ❌ |
| Créer contrat | ✅ | ✅ | ✅ | ✅ | ❌ |
| Modifier contrat | ✅ | ✅ | ✅ | ✅ | ❌ |
| Supprimer contrat | ✅ | ✅ | ✅ | ✅ | ❌ |
| PAIES | |||||
| Voir fiches de paie | ✅ | ✅ | ✅ | ✅ | ❌ |
| Générer fiches de paie | ✅ | ✅ | ✅ | ✅ | ❌ |
| Modifier fiches de paie | ✅ | ✅ | ✅ | ✅ | ❌ |
| SALARIÉS | |||||
| Voir liste salariés | ✅ | ✅ | ✅ | ✅ | ❌ |
| Créer salarié | ✅ | ✅ | ✅ | ✅ | ❌ |
| Modifier salarié | ✅ | ✅ | ✅ | ✅ | ❌ |
| Supprimer salarié | ✅ | ✅ | ✅ | ✅ | ❌ |
| COTISATIONS | |||||
| Voir cotisations mensuelles | ✅ | ✅ | ✅ | ❌ | ✅ (lecture seule) |
| Modifier cotisations | ✅ | ✅ | ✅ | ❌ | ❌ |
| VIREMENTS SALAIRES | |||||
| Voir virements | ✅ | ✅ | ✅ | ❌ | ✅ (lecture seule) |
| Créer/modifier virements | ✅ | ✅ | ✅ | ❌ | ❌ |
| FACTURATION | |||||
| Voir factures | ✅ | ✅ | ✅ | ❌ | ✅ (lecture seule) |
| Créer/modifier factures | ✅ | ✅ | ✅ | ❌ | ❌ |
| DOCUMENTS | |||||
| Upload documents | ✅ | ✅ | ✅ | ✅ | ❌ |
| Voir tous documents | ✅ | ✅ | ✅ | ✅ | ❌ |
| Voir documents comptables* | ✅ | ✅ | ✅ | ❌ | ✅ |
| GESTION UTILISATEURS | |||||
| Voir liste utilisateurs | ✅ | ✅ | ✅ | ❌ | ❌ |
| Créer SUPER_ADMIN | ✅ | ❌ | ❌ | ❌ | ❌ |
| Créer ADMIN/AGENT/COMPTA | ✅ | ✅ | ✅ | ❌ | ❌ |
| Modifier rôle SUPER_ADMIN | ✅ | ❌ | ❌ | ❌ | ❌ |
| Modifier rôle autres | ✅ | ✅ | ✅ | ❌ | ❌ |
| Révoquer SUPER_ADMIN | ✅ | ❌ | ❌ | ❌ | ❌ |
| Révoquer autres | ✅ | ✅ | ✅ | ❌ | ❌ |
| INFORMATIONS STRUCTURE | |||||
| Voir informations | ✅ | ✅ | ✅ | ✅ | ✅ |
| Modifier SIRET/SEPA | ✅ | ✅ | ❌ | ❌ | ❌ |
| Modifier autres infos | ✅ | ✅ | ✅ | ❌ | ❌ |
Documents comptables inclus : factures, devis, relevés cotisations, virements salaires, justificatifs bancaires, bilans, documents comptables généraux
Détails par Rôle
🔴 STAFF (Équipe Odentas)
Accès complet à toutes les organisations et toutes les fonctionnalités. Ce rôle est réservé à l'équipe technique Odentas.
Permissions spécifiques :
- Peut créer et supprimer des SUPER_ADMIN
- Accès multi-organisations
- Aucune restriction
🟣 SUPER_ADMIN (Administrateur Principal)
Responsable principal de l'organisation. Il existe un seul SUPER_ADMIN par organisation.
Permissions :
- ✅ Accès complet à toutes les données de l'organisation
- ✅ Peut gérer tous les utilisateurs (sauf autres SUPER_ADMIN)
- ✅ Peut créer ADMIN, AGENT, COMPTA
- ✅ Peut modifier les informations structurelles critiques (SIRET, SEPA)
- ✅ Accès en lecture/écriture à facturation, cotisations, virements
- ✅ Gestion complète des contrats, paies, salariés
Restrictions :
- ❌ Ne peut pas être modifié ou révoqué par un ADMIN
- ❌ Seul STAFF peut créer un nouveau SUPER_ADMIN
Protection :
- Les ADMIN ne peuvent pas modifier ou supprimer le SUPER_ADMIN
- C'est le "propriétaire" de l'organisation
🔵 ADMIN (Administrateur Secondaire)
Administrateurs opérationnels. Plusieurs ADMIN peuvent coexister.
Permissions :
- ✅ Accès complet aux données opérationnelles
- ✅ Peut gérer les utilisateurs (sauf SUPER_ADMIN)
- ✅ Peut créer AGENT et COMPTA
- ✅ Accès en lecture/écriture à facturation, cotisations, virements
- ✅ Gestion complète des contrats, paies, salariés
- ✅ Upload et accès à tous les documents
Restrictions :
- ❌ Ne peut pas modifier les informations structurelles critiques (SIRET/SEPA)
- ❌ Ne peut pas modifier/révoquer un SUPER_ADMIN
- ❌ Ne peut pas créer de SUPER_ADMIN
🟢 AGENT (Opérateur RH)
Rôle opérationnel pour la gestion quotidienne des contrats, paies et salariés.
Permissions :
- ✅ Gestion complète des contrats (CDDU, RG)
- ✅ Gestion des fiches de paie
- ✅ Gestion des salariés
- ✅ Upload de documents généraux
- ✅ Consultation des informations de structure
Restrictions :
- ❌ Pas d'accès aux données financières (facturation, cotisations, virements)
- ❌ Pas d'accès à la gestion des utilisateurs
- ❌ Pas d'accès aux documents comptables
- ❌ Pas de modification des informations de structure
Cas d'usage : Assistant RH, chargé de production, gestionnaire de paie junior
🟡 COMPTA (Comptable)
Accès financier en lecture seule. Le COMPTA ne peut ni créer, ni modifier, ni supprimer de données.
Permissions :
- ✅ Consultation des cotisations mensuelles
- ✅ Consultation des virements salaires
- ✅ Consultation des factures
- ✅ Consultation des documents comptables uniquement :
- Factures
- Devis
- Relevés de cotisations
- Virements salaires
- Justificatifs bancaires
- Bilans
- Documents comptables généraux
- ✅ Consultation des informations de structure
Restrictions :
- ❌ Pas d'accès aux contrats
- ❌ Pas d'accès aux fiches de paie
- ❌ Pas d'accès aux salariés
- ❌ Pas d'upload de documents
- ❌ Pas d'accès à la gestion des utilisateurs
- ❌ Pas de modification possible (lecture seule uniquement)
Cas d'usage : Expert-comptable externe, comptable ne nécessitant que les données financières
Hiérarchie et Protection
Règle de Hiérarchie
STAFF
└── SUPER_ADMIN (protégé)
└── ADMIN
├── AGENT
└── COMPTA
Règles de modification :
- STAFF peut tout modifier
- SUPER_ADMIN peut modifier ADMIN, AGENT, COMPTA (pas d'autres SUPER_ADMIN)
- ADMIN peut modifier AGENT, COMPTA (pas SUPER_ADMIN ni autres ADMIN)
- AGENT et COMPTA ne peuvent rien modifier
Protection du SUPER_ADMIN
Le SUPER_ADMIN est protégé :
- Un ADMIN ne peut pas changer son rôle
- Un ADMIN ne peut pas le révoquer
- Un ADMIN ne peut pas créer un nouveau SUPER_ADMIN
Seul le STAFF d'Odentas peut modifier un SUPER_ADMIN.
Implémentation Technique
Fichier central : lib/permissions.ts
Toutes les vérifications de permissions sont centralisées dans lib/permissions.ts.
Fonctions principales :
// Récupérer les permissions d'un utilisateur
getUserPermissions(supabaseClient): Promise<UserPermissions | null>
// Ressources opérationnelles
canAccessContrats(role: UserRole): boolean
canAccessPaies(role: UserRole): boolean
canAccessSalaries(role: UserRole): boolean
// Ressources financières
canAccessFacturation(role: UserRole): boolean
canAccessCotisations(role: UserRole): boolean
canAccessVirements(role: UserRole): boolean
// Gestion utilisateurs
canManageUsers(role: UserRole): boolean
canModifyUser(permissions: UserPermissions, targetRole: UserRole): boolean
canCreateUserWithRole(permissions: UserPermissions, newRole: UserRole): boolean
// Documents
canUploadDocuments(role: UserRole): boolean
canAccessDocumentType(role: UserRole, docType: string): boolean
// Informations structure
canModifyStructureInfo(role: UserRole): boolean
Routes protégées
Backend (API Routes) :
/api/contrats/*- Bloque COMPTA/api/facturation/*- Bloque AGENT/api/cotisations/*- Bloque AGENT/api/virements-salaires/*- Bloque AGENT/api/access/*- Bloque AGENT et COMPTA/api/access/[memberId]/role/*- Empêche ADMIN de modifier SUPER_ADMIN/api/access/[memberId]/revoke/*- Empêche ADMIN de révoquer SUPER_ADMIN/api/access/nouveau/*- Empêche ADMIN de créer SUPER_ADMIN
Frontend (Composants React) :
- Masquage/désactivation des boutons selon le rôle
- Navigation conditionnelle
Exemples de Cas d'Usage
Scénario 1 : Cabinet de Production
Organisation : Compagnie de théâtre de 20 salariés
Utilisateurs :
- 1 SUPER_ADMIN : Directeur administratif (gestion complète + informations critiques)
- 2 ADMIN : Responsable RH + Responsable production (gestion complète opérationnelle)
- 3 AGENT : Assistants RH (gestion contrats/paies uniquement)
- 1 COMPTA : Expert-comptable externe (consultation financière uniquement)
Scénario 2 : Petite Structure Associative
Organisation : Association culturelle de 5 salariés
Utilisateurs :
- 1 SUPER_ADMIN : Président de l'association (tout)
- 1 AGENT : Secrétaire générale (contrats/paies)
- 1 COMPTA : Trésorier (consultation financière)
Scénario 3 : Grande Production
Organisation : Festival avec 100+ salariés
Utilisateurs :
- 1 SUPER_ADMIN : Directeur général
- 5 ADMIN : Équipe de direction
- 10 AGENT : Équipe RH/production
- 2 COMPTA : Cabinet comptable externe
Migration et Changement de Rôle
Promotion d'utilisateur
AGENT → ADMIN
- Action possible par SUPER_ADMIN ou ADMIN
- Débloque l'accès financier et la gestion utilisateurs
ADMIN → SUPER_ADMIN
- ⚠️ Action STAFF uniquement
- L'ancien SUPER_ADMIN doit être rétrogradé en ADMIN d'abord
- Il ne peut y avoir qu'un seul SUPER_ADMIN
Rétrogradation d'utilisateur
ADMIN → AGENT
- Action possible par SUPER_ADMIN
- Bloque l'accès financier et gestion utilisateurs
SUPER_ADMIN → ADMIN
- ⚠️ Action STAFF uniquement
- Permet de désigner un nouveau SUPER_ADMIN
FAQ
Pourquoi un seul SUPER_ADMIN ?
Pour éviter les conflits de gestion et garantir une responsabilité claire. Le SUPER_ADMIN est le "propriétaire" de l'organisation.
Un ADMIN peut-il modifier un autre ADMIN ?
Non. Les ADMIN peuvent uniquement gérer les AGENT et COMPTA. Seul le SUPER_ADMIN peut modifier un ADMIN.
Pourquoi le COMPTA ne peut pas uploader de documents ?
Le rôle COMPTA est en lecture seule pour éviter toute modification des données opérationnelles ou financières. Il peut uniquement consulter.
Comment ajouter un nouveau SUPER_ADMIN ?
Seul le STAFF Odentas peut créer un SUPER_ADMIN. Contactez support@odentas.com.
Le COMPTA peut-il voir les fiches de paie ?
Non. Le COMPTA ne voit que les données financières agrégées :
- Cotisations mensuelles (montants globaux)
- Virements salaires (montants globaux)
- Factures
- Documents comptables
Les fiches de paie détaillées sont réservées aux rôles opérationnels (SUPER_ADMIN, ADMIN, AGENT).
Un AGENT peut-il créer des factures ?
Non. Les factures sont considérées comme des ressources financières. Seuls SUPER_ADMIN et ADMIN ont accès.
Support Technique
Pour toute question sur les permissions ou demande de modification de rôle, contactez :
Support Odentas
- Email : support@odentas.com
- Interface : Espace Paie Odentas
Version : 1.0
Dernière mise à jour : Janvier 2025
Auteur : Équipe Technique Odentas