Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-01-2010 13:16:44

Devether
Membre
Date d'inscription: 23-01-2009
Messages: 21

[Zend_Acl][1.9.0] Droits sur les ressouces avec héritage

Bonjour,

Je coince sur la gestion des droits acl.

Voila ma config :

Code:

        /** 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.

Code:

...
<?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

 

#2 15-01-2010 15:22:43

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Acl][1.9.0] Droits sur les ressouces avec héritage

que vaut  $this->user->role_nom ?


----
Gruiiik !

Hors ligne

 

#3 15-01-2010 16:16:38

Devether
Membre
Date d'inscription: 23-01-2009
Messages: 21

Re: [Zend_Acl][1.9.0] Droits sur les ressouces avec héritage

Oups!
C'est vrai que j'ai oublié de mettre que pour mon exemple il vaut 'Writer';

Hors ligne

 

#4 15-01-2010 18:15:28

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Acl][1.9.0] Droits sur les ressouces avec héritage

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


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages