Système de Permissions
Contrôle d'accès granulaire : Workspace, Projet, et même par champ.
Niveaux de permissions
🏢 Niveau Workspace
Rôles : Owner Admin Editor Analyst Collector Reviewer
Définit les droits globaux sur tous les projets du workspace.📁 Niveau Projet
Rôles : Designer Analyst Collector Reviewer
Définit les droits spécifiques à un projet.🏷️ Niveau Champ
Permissions : edit view hidden
Matrice des permissions
| Action | Owner | Admin | Designer | Analyst | Collector | Reviewer |
|---|---|---|---|---|---|---|
| Voir le workspace | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gérer les membres | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Créer un projet | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Builder (éditer formulaire) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Publier un projet | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Soumettre des données | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Voir les soumissions | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| Valider/Rejeter | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Créer une analyse | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Supprimer le projet | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Permissions par champ (JSON)
Exemple de configuration pour un projet avec des données salariales sensibles :
{
"field_uuid_nom": "edit",
"field_uuid_age": "edit",
"field_uuid_salaire": "hidden",
"field_uuid_commentaire": "view"
}
edit— Le collecteur peut voir et modifierview— Le collecteur peut voir mais pas modifierhidden— Le champ est invisible pour le collecteur
Héritage des permissions
Les permissions sont additives :
- Un Admin au niveau Workspace a tous les droits sur tous les projets
- Un rôle Projet peut restreindre un rôle Workspace (ex: Admin workspace → Collector sur un projet spécifique)
- Les permissions par champ s'appliquent en plus des rôles
Pour une sécurité optimale, appliquez le principe du moindre privilège : donnez à chaque utilisateur uniquement les droits dont il a besoin.