IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Acl & Zend_Auth PHP Discussion :

Acl et Navigation


Sujet :

Zend_Acl & Zend_Auth PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Par défaut Acl et Navigation
    Bonjour tout le monde!
    Je débute avec Zend framework et je bute sur un petit problème.
    Apparemment il serait possible de modifié son menu en fonction des acls que l'on a définie. (En gros de pas faire apparaitre un élément du menu si l'utilisateur connecté est membre et non admin).
    Alors pour faire menu, aucun soucis, c'est assez intuitif, et, d'aprés le tuto du site officiel, y integrer les acls aussi. Mais non...
    Alors je pense que j'ai du oublier quelque chose... si quelqu'un peut me venir en aide svp !!
    Voici mon code :

    acl.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    [roles]  
     
    guest = null  
    member = null  
    admin = null  
     
    [ressources]  
     
    ; définition des ressources dans le module par défaut  
    index = null  
    album = null
    auth  = null  
    admin = null 
    news  = null
     
    [guest]  
     
    allow.auth  = null
    allow.index = null
    allow.album = index,list
     
    ; member hérite de guest 
    [member : guest]  
     
    ; on interdit le login (le membre est déjà identifié)  
    deny.auth   = null 
    allow.index = null
    allow.news  = ajout
    allow.album = ajout
     
    ; admin hérite de member  
    [admin : member]  
     
    allow.admin = null
    allow.index = null
    allow.news  = null
    allow.album = null
    navigation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
        <nav>
     
    	   		<label>Home</label>
    	   		<controller>index</controller>
    	   		<action>index</action>  
    	   		<resource>index</resource>
    	   		<pages>
    		    	<album>
    			   		<label> Albums </label>	
    	   				<controller>album</controller>
    	   				<action>index</action>
    	   				<pages>
    						<list>
    							<label>Liste</label>
    							<controller>album</controller>
    							<action>list</action>
    							<resource>album</resource>
    						</list>
    						<ajout>
    							<label>Ajout</label>
    							<controller>album</controller>
    							<action>ajout</action>
    							<resource>album</resource>
    						</ajout>
    					</pages>			
    		    	</album>
    	   			<news>
    	   				<label>News</label>
    	        		<controller>news</controller>
    	        		<action>index</action>
    	        		<resource>news</resource>
    				</news> 	
    		     	<admin>
    	   				<label>Client</label>
    	        		<controller>admin</controller>
    	        		<action>list</action>
    	        		<resource>admin</resource>
    				</admin> 	
    			</pages>
       	</nav>
    </config>
    layout.phtml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
       $acl_ini = APPLICATION_PATH.'/configs/acl.ini' ;  
       $acl     = new My_Acl_Ini($acl_ini) ;
       Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl);
       Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole($role);
     
       echo $this->navigation()
                     ->menu();
    Alors en fait, quand je ne suis pas connecté (c'est a dire en 'guest' ), le menu album ne s'affiche pas alors que j'autorise l'action 'album/list' pour 'guest'... Je n'arrive pas a comprendre pourquoi !
    Donc voila, si vous voyez une erreur ou un oublie (il doit surement y en avoir un ^^) merci de me le dire, et n'hésitez pas a demander si il vous faut des renseignements supplémentaires !

    Merci d'avance !!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut
    Le problème c'est que les acl ne suffisent pas !

    Tu dois créer une aide de vue pour vérifier simplement si un membre est autorisé à accéder à un lien, si oui alors tu l'affiche. L'aide de vue est assez simple : tu récupère l'instance de l'acl, et tu utilise la méthode isAllowed avec les paramètres passés depuis la vue que tu renvoi depuis l'aide de vue.

Discussions similaires

  1. Configuration routes, navigation, acl
    Par nicos08 dans le forum Autres composants
    Réponses: 0
    Dernier message: 29/11/2013, 14h20
  2. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09
  3. Comment gérer la Navigation d'un site ?
    Par chtiboss dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 22/03/2004, 13h17
  4. [JSP][Barre de navigation] Gestion du bouton precedent
    Par lando dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 09/09/2003, 16h18
  5. Bouton de navigation
    Par thierry sache dans le forum Flash
    Réponses: 2
    Dernier message: 17/12/2002, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo