2010-06-03 9 views
2

J'ai mis en place un système de permissions ACL dans mon application et je me demande maintenant comment l'utiliser au mieux, particulièrement en ce qui concerne les groupes d'utilisateurs. Dans sa forme la plus simple, il y aura plusieurs groupes de "rôles" ("admins", "éditeurs", "utilisateurs", etc.) et tous les utilisateurs appartiendront à l'un de ces groupes. Ma question est la suivante: selon votre expérience, vaut-il mieux structurer l'arborescence ARO pour avoir le plus d'autorisations en haut et les supprimer au fur et à mesure que vous descendez (1) ou pour avoir le moins d'autorisations en haut et ajouter à mesure que vous descendez (2).Structure du groupe ACL: de haut en bas ou de bas en haut?

(1): 
- Admins   allow all 
    - Editors  deny create, delete 
    - Users  deny update 

(2): 
- Users   allow read 
    - Editors  allow update 
    - Admins  allow create, delete 

Quels sont les avantages et les inconvénients de chacun?

Répondre

1

Je pense que ce que vous demandez est "Si un utilisateur doit être administrateur et sans différentes capacités, ou si un administrateur doit être un utilisateur avec des capacités supplémentaires." Je pense que, d'un point de vue de la modélisation, avoir un administrateur soit un utilisateur, c'est mieux.

En outre, il est important de penser à ce qui pourrait mal tourner. S'il y avait une mauvaise configuration dans la mise en œuvre du système, il serait préférable de refuser à quelqu'un l'accès à faire quelque chose qu'il devrait pouvoir faire, plutôt que de risquer de permettre à quelqu'un d'accéder à quelque chose auquel il n'aurait pas accès.

Ainsi, je pense que votre deuxième exemple est meilleur. Il est plus sûr de structurer votre système en termes d'octroi de permissions, plutôt que de les nier.