2009-10-27 5 views
0

J'ai une grande implémentation de Zend_Acl et la fonction de refus ne fonctionne pas comme prévu. Il n'hérite pas correctement et j'ai des conflits non résolus avec les groupes.Zend_Acl ne fonctionne pas comme annoncé

Avant que je reçois du genou profond dans le code. Y at-il des problèmes bien connus avec Zend_Acl ou des conseils avancés que quelqu'un veut partager.

Je dois refuser explicitement l'accès à tous les enfants dans un arbre, alors que je m'attends à refuser l'accès à un seul parent.

J'ai plusieurs groupes avec divers refus/permet sur le même objet. Le manuel indique que le dernier groupe ajouté dans et array est d'abord vérifier ... cela ne semble pas être le cas, il semble vérifier les plus spécifiques aux permissions les plus générales (null).

Si je mets des permissions sur la racine de l'arbre, elles cessent de fonctionner quand je mets toute permission plus bas dans l'arbre qu'elles cessent d'hériter.

+0

Nous allons certainement avoir besoin de voir du code pour trouver des problèmes. Plus précisément, le code dans lequel vous exécutez la méthode Zend_Acl :: isAllowed() et un exemple de vos instructions ACL addRole(), allow() et deny(). – Mark

Répondre

0

Pour moi ACL fonctionne comme prévu. Si vous faites cela, il a le comportement attendu: * permettent module par défaut pour tous les * permettent module d'administration pour les administrateurs et les Superadmins * refuser le module admin/utilisateurs controleur pour les admins * permettent module admin/utilisateurs controleur pour Superadmins

L'utilisateur ne peut pas accéder à l'administrateur. Asdmins ne peut pas accéder à l'administration de l'utilisateur. Les superadmins peuvent accéder à tout.

+0

Je travaille sur une base de connaissances intranet qui a 1000 pages de pages dynamiques (ressources), j'ai environ 30 groupes (tous de même niveau, pas d'héritage), j'ai les permissions NULL, voir et éditer (modifier comprend créer/supprimer/déplacer etc). Si je donne 'superus' allow (NULL) et 'tout le monde' permettent (view) dans la racine et ensuite 'everyone' nie (NULL) quelque part dans la branche, tout ce qui se passe après la règle 'NULL' perd son héritage. Je peux ensuite mettre des permissions sur des pages individuelles mais l'héritage s'arrête. Réorganiser l'ordre des 'groupes' dont l'utilisateur est membre ne fait aucune différence. – Simon

Questions connexes