parceque si tu veux hériter des droits "groupe" au niveau de tes utilisateurs, il faut conserver un masque libre pour la propagation. sinon, tu dois oublier la possibilité de combiner les deux types de droits, ce qui peut être limitant quand on en a besoin...
pour reprendre mon exemple ci-dessus...
2 groupes :
achat 001
ventes 010
et un utilisateur "administrateur des ventes" :
membre du groupe "ventes" et les droits "1__"
=> ainsi, on lorsqu'on calcule ses droits, on retoure 110 comme désiré.
l'intérêt du truc, c'est que lorsque tu as des droits plus complexes, et qu'un jour un groupe se voit octroyer un nouveau droit, alors il est propagé à tous les utilisateurs membres du groupe, y compris ceux à qui on a collé des droits spécifiques en plus.
idem, on peut avoir un groupe "administration" qui octroie les droits "111"
un utilisateur "administrateur des achats" peut alors se voir membre de ce groupe, mais avoir les droits suivants : "_0_" => on lui interdit explicitement l'accès aux modules des ventes, quelque soit son groupe. il se retrouve alors finalement avec ces droits : "101"
Perso, j'ai rien inventé hein... Les ACL Windows font leur preuves depuis plus de 15 ans et fonctionnent sur ce modèle (en plus complexe encore : octroyé/refusé/non paramétré, mais avec en plus la possibilité d'appartenir à plusieurs groupes simultanés et en cascades -groupe qui appartient à un groupe-. idem, un droit ne correspond pas à un "domaine" sous windows, mais à une action. et chaque élément attribue des droits pour une action donnée à des groupes/comptes donnés. bref, ça va bien plus loin, mais ça commence à faire un peu complexe pour un simple site web. les valeurs "refusé" prenent alors le dessus sur toutes les autres autorisations quelles que soient le niveau de chaque)
par exemple, les groupes :
"ventes"
"achats"
le groupe "admin" membre de "ventes" et "achats"
l'utilisateur "root" membre de "admin"
sur la page, je mets :
"ventes" : lecture autorisée / écriture interdite
"root" : lecture autorisée / écriture autorisée
=> "root" ne peut pas écrire, car il est indirectement membre de "ventes" à qui on interdit l'accès.
on modifie :
"ventes" : lecture autorisée / écriture non spécifiée
"admin" : lecture autorisée / écriture autorisée
"root" : droits non spécifiés
=> "root" peut écrire, car il est membre de "admin" qui est autorisée, et aucun autre droit ne va à l'encontre de cette autorisation
=> par contre, un membre de "ventes" uniquement ne pourra pas écrire, car en l'absence d'autorisation, on n'octroie pas le droit
bon, par contre on voit que ça commence à devenir un peu compliqué juste pour un site web. ceci dit, c'est ce qu'il y a de mieux je pense parmis les solutions "simples".
Message édité par MagicBuzz le 26-05-2007 à 00:25:29