Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-02-2010 00:46:38

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

[Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Bonjour,

Je suis en train de mettre le nez dans les ACL et j'ai une petite question...

Je souhaite que tous mes utilisateurs puisse accéder à l'action "list" de mon module mais sans être obligé de faire un "allow" dessus.

Par exemple :

$acl -> addRole( new Zend_Acl_Role("admin") );
$acl -> addRole( new Zend_Acl_Role("user") );

Je souaiterais eviter de faire :
$acl -> allow("admin", "article", "index_index");
$acl -> allow("user", "article", "index_index");

j'ai mis index_index dans le privilège car j'utilise bcp les modules...

J'ai également vu que je peux utiliser des héritages mais ce que je cherche c'est en gros :

Si je n'ai pas explicitement interdit l'action demandée, qu'elle soit automatiquement autorisée et je ne vois pas comment faire dans le plugin de test...


Cordialement,
Kaimite

Dernière modification par Kaimite (14-02-2010 11:44:50)

Hors ligne

 

#2 12-02-2010 09:31:34

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Salut,

Je dis un peu au pif, as-tu essayé de passer null comme rôle dans ton allow ?

Sinon, avec l'héritage tu donnes le droit à ton rôle le plus bas et tous les autres hériterons de ses droits automatiquement.

Code:

$acl->addRole(new Zend_Acl_Role('user'), $acl->getDefaultRole())
    ->addRole(new Zend_Acl_Role('user_plus_puissant'), 'user')
    ->addRole(new Zend_Acl_Role('admin'));

$acl->add(new Zend_Acl_Resource('front_index'));

$acl->deny();
$acl->allow($acl->getDefaultRole(), 'front_index', array('index')); // donc le guest, le user, et le user_plus_puissant

$acl->allow('admin');

A+ benjamin.

Dernière modification par Delprog (12-02-2010 09:31:56)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 12-02-2010 13:06:27

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

merci pour ta réponse.

En effet je pense que je vais essayer surement faire un "allow" general, en gros et faire des deny...

Le truc c'est que je ne vais pas avoir d'héritages ou très peu.

Je suis en train de faire l'intranet de ma boite qui est un groupe automobile, je vais donc avoir des profils assez différents.

Je pense que je vais faire un truc du genre :

Code:

$acl -> allow(null, "annuaire");
$acl -> deny("secretaire", "annuaire", "index_add");
$acl -> deny("secretaire", "annuaire", "index_update");
$acl -> deny("secretaire", "annuaire", "index_delete");

etc.

Comme ça si je rajoute une fonctionnalité elle pourra être accessible par defaut.

Question que je pose sans avoir regardé ( je le ferais ce soir en rentrant )

Je dois pouvoir faire :

Code:

$acl -> deny("secretaire", "annuaire", array("index_add", "index_update", "index_delete");

J'va jeter un oeil sur le getDefaultRole() que je ne conaissais pas...

Code:

$acl->deny();

sert à quoi exactement ? Tout interdire quelque soit le role, ressource, provilège ?

Cordialement,
Kaimite

Hors ligne

 

#4 12-02-2010 15:10:16

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

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Kaimite a écrit:

Code:

$acl->deny();

sert à quoi exactement ? Tout interdire quelque soit le role, ressource, provilège ?

Cordialement,
Kaimite

Oui, même chose pour allow() (ce que tu recherches)


----
Gruiiik !

Hors ligne

 

#5 12-02-2010 15:44:24

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Euh pardon le getDefaultRole() est un truc à moi smile

J'ai étendu la classe Zend_Acl, et j'ai :

Code:

/**
 * Default role
 * 
 * @var string
 */
 protected static $_defaultRole = 'guest';

 // plus loin

 /**
  * Returns the default role
  * 
  * @return string
  */
  public function getDefaultRole()
  {
      return self::$_defaultRole;
  }

J'aurais plus tendance à tout deny pour être sûr et ensuite donner les droits au fur et à mesure de l'arrivée des rôles et des ressources. Bon aussi je n'utilise pas les actions des controlleurs comme ressources donc je n'ai pas à ouvrir systématiquement les accès communs à tout le monde (comme les index par ex.).

Oui tu peux passer par un array() pour lister les actions autorisées (ou refusées) sur une même ressource smile


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#6 12-02-2010 17:38:49

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Delprog a écrit:

Euh pardon le getDefaultRole() est un truc à moi smile

On a tous etendus nos p'tits trucs à nous smile

J'va essayer tout çà !

Merci pour les infos.

Cordialement,
Kaimite

Hors ligne

 

#7 12-02-2010 17:39:14

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

@delprog Si ce ne sont pas les actions des controlleurs qui sont tes ressources, qu'est ce que c'est ? Quelles sont les autres moyens d'utiliser les ressources ? (un petit exemple ?)

Hors ligne

 

#8 12-02-2010 21:50:56

Grummfy
Membre
Lieu: Belgique
Date d'inscription: 01-08-2007
Messages: 232
Site web

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

exemple : ressource = groupe d'utilisateurs


Engagez-moi! : Cherche job en Belgique autour de Namur (1 heure de route autour)
blog - ZF Planet

Hors ligne

 

#9 14-02-2010 11:45:31

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: [Résolu][Zend_Acl 1.10] Authoriser un privilège s'il n'est pas définit

Merci à tous pour les réponses smile

Cordialement,
Kaimite

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