doc/securite.txt
changeset 0 b97547f5f1fa
child 36 f6bcad5c6dfe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/securite.txt	Wed Nov 05 15:52:50 2008 +0100
@@ -0,0 +1,43 @@
+Le contrôle d'accès
+===================
+
+
+Vocabulaire
+-----------
+* Personne, Societe définissent deux *types* d'entité 
+* "Personne travaille_pour Societé" déclare qu'une relation
+  travaille_pour peut exister entre une entité de type Personne et une
+  entité de type Societe. L'ensemble des règles de ce type appliqué
+  à la relation "travaille_pour" définit le schéma de la relation
+  "travaille_pour"
+
+
+Description du modèle de sécurité
+---------------------------------
+
+Le modèle de sécurité de cubicweb est un modèle fondé sur des `Access
+Control List`. Les notions sont les suivantes :
+
+* utilisateurs et groupes d'utilisateurs
+* un utilisateur appartient à au moins un groupe
+* droits (lire, modifier, créer, supprimer) 
+* les droits sont attribués aux groupes (et non aux utilisateurs)
+
+Pour CubicWeb plus spécifiquement :
+
+* on associe les droits au niveau des schemas d'entites / relations
+* pour chaque type d'entité, on distingue les droits de lecture,
+  ajout, modification et suppression
+* pour chaque type de relation, on distingue les droits de lecture,
+  ajout et suppression (on ne peut pas modifer une relation)
+* les groupes de base sont : Administrateurs, Utilisateurs, Invités
+* les utilisateurs font par défaut parti du groupe Utilisateurs
+* on a un groupe virtuel "Utilisateurs Propriétaires", auquel on peut
+  associer uniquement les droits de suppression et de modification
+* on ne peut pas mettre d'utilisateurs dans ce groupe, ils y sont
+  ajoutés implicitement dans le contexte des objets dont ils sont
+  propriétaires 
+* les droits de ce groupe ne sont vérifiés que sur
+  modification / suppression si tous les autres groupes auxquels
+  l'utilisateur appartient se sont vu interdir l'accès
+