Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je coince sur la gestion des droits acl.
Voila ma config :
/** Roles */ $this ->addRole(new Zend_Acl_Role('Guest')) ->addRole(new Zend_Acl_Role('Register'), 'Guest') ->addRole(new Zend_Acl_Role('Writer'), 'Register') /** Default module */ $this ->add(new Zend_Acl_Resource('auth')) ->add(new Zend_Acl_Resource('index')) /** Administration module */ $this ->add(new Zend_Acl_Resource('administration')) ->add(new Zend_Acl_Resource('administration:articles'), 'administration') ->add(new Zend_Acl_Resource('administration:groupes'), 'administration') ->add(new Zend_Acl_Resource('administration:utilisateurs'), 'administration') /** Permissions */ $this ->deny() /* Guest*/ ->allow('Guest', 'auth') /* Register */ ->allow('Register', 'index') /* Writer*/ ->allow('Writer', 'administration', 'index') ->allow('Writer', 'administration:articles', array('index', 'add'))
Dans la page "Administration" j'ai des icônes pour gérer les article, les utilisateurs, etc.
Pour chaque icône je teste si elle doit s'afficher ou pas en fonction des droits.
... <?php if ($this->acl->isAllowed($this->user->role_nom, 'administration:articles', 'index')):?> <li><a href="...">Gérer les articles</a></li> <?php endif;?> <?php if ($this->acl->isAllowed($this->user->role_nom, 'administration:utilisateurs', 'index')):?> <li><a href="...">Gérer les utilisateurs</a></li> <?php endif;?> ...
Si je suis mon raisonnement, seul l'icône de gestion des article devrait s'afficher mais en fait elles s'affichent toutes.
Pour qu'elles ne s'affichent pas, il faut que je spécifie un deny sur 'administration:groupes' et 'administration:utilisateurs'. Mais logiquement, comme j'ai fais un $this ->deny() au debut, ces pages ne devraient pas être accessibles.
Quelqu'un peut m'expliquer ?
Hors ligne
que vaut $this->user->role_nom ?
Hors ligne
Oups!
C'est vrai que j'ai oublié de mettre que pour mon exemple il vaut 'Writer';
Hors ligne
beh, c'est normal que tout s'affiche (du moins dans le code qu'on voit)
tu as mis ->allow('Writer', 'administration', 'index')
donc, write a accès à administration/index
tu as mis
administration:articles
et
administration:groupes
qui hérites d'administration
donc, write à les droits
Hors ligne
Pages: 1