Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-02-2009 11:49:15

Nikko
Membre
Lieu: Rueil (Haut-de-Seine)
Date d'inscription: 19-12-2008
Messages: 95

[Résolu][Zend_Acl][v1.6]Activer le contrôle d'accès

Bonjour à tous,

Je suis stagiaire dans une entreprise et je suis en charge de la migration du framework Zend en version 1.6.
J'ai mis en place Zend_Auth et Zend_Acl mais je rencontre un problème sur ce dernier.

J'aurais voulu savoir s'il est possible d'activé les ACL qu'une fois l'utilisateur authentifié ? Car actuellement, j'ai un MyPluginAuth / preDispatch() qui vérifie les ACL à chaque requête envoyée à un controller. Or, un utilisateur qui n'est pas connecté n'a pas de droits. Et par conséquent il ne peut accéder à AuthController.

Voici le code de ma fonction preDispatch :

Code:

public function preDispatch(Zend_Controller_Request_Abstract $request)
    {  
        if ($this->_auth->hasIdentity())
        {
               
              $PER_DROITS = $_SESSION['USER']['informations']->PER_DROITS;
            // Recuperer içi le role de l'utilisateur connecté            
            if($PER_DROITS == 1){
                $_SESSION['acl']->role = 'user';
            }elseif ($PER_DROITS == 405)
                $_SESSION['acl']->role = 'administrateur';
        }
        
        $controller = $request->controller;
        $action = $request->action;
        $module = $request->module;
        $resource = $controller;
    
        if (!$this->_acl->has($resource)) 
            $resource = 'Auth';
                
        if (!$this->_acl->isAllowed($_SESSION['acl']->role, $resource, $action)) 
        {
               //n'est pas loggé
            if (!$this->_auth->hasIdentity()) 
            {                      
                $module = FAIL_AUTH_MODULE;
                $controller = FAIL_AUTH_CONTROLLER;
                $action = FAIL_AUTH_ACTION;
            //n'est pas autorisé
            } else 
            {          
                $module = 'default';                
                $controller = 'Index';               
                $action = 'index';                
            }
        }
    
        $request->setModuleName($module);
        $request->setControllerName($controller);                
        $request->setActionName($action);
        
    }

Est-ce que quelqu'un aurait une solution ou une indication sur la marche à suivre ?

Je vous remercie de m'avoir consacré du temps à me lire,
Nikko

Dernière modification par Nikko (11-02-2009 09:09:16)


Nikko

Etudiant en école d'ingénieur à l'INSIA

Hors ligne

 

#2 06-02-2009 23:57:02

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: [Résolu][Zend_Acl][v1.6]Activer le contrôle d'accès

Tu peux définir un niveau "visiteur" dans tes acl qui à le droit au controller auth wink


Société : Direct Info Service

Hors ligne

 

#3 07-02-2009 13:13:02

Alshten
Nouveau membre
Date d'inscription: 26-01-2009
Messages: 3

Re: [Résolu][Zend_Acl][v1.6]Activer le contrôle d'accès

Tu peux contrôler si ton utilisateur est connecté et s'il ne l'est pas tu lui met un rôle "visiteur" auquel tu attribue les droits sur Auth.

Hors ligne

 

#4 08-02-2009 19:58:50

Nikko
Membre
Lieu: Rueil (Haut-de-Seine)
Date d'inscription: 19-12-2008
Messages: 95

Re: [Résolu][Zend_Acl][v1.6]Activer le contrôle d'accès

Tout d'abord, je vous remercie tous les deux pour m'avoir répondu.

J'ai pris note de votre proposition et je vous avouerais que j'y ai déjà pensé. Cependant, j'ai des contraintes de développement qui m'empêchent d'utiliser un statut 'visiteur' dans l'application. Mon tuteur ne veut pas faire ainsi.
Est-ce que vous auriez autre chose à me proposer ?

Merci encore de m'avoir consacré du temps,
Nikko


Nikko

Etudiant en école d'ingénieur à l'INSIA

Hors ligne

 

#5 11-02-2009 09:08:41

Nikko
Membre
Lieu: Rueil (Haut-de-Seine)
Date d'inscription: 19-12-2008
Messages: 95

Re: [Résolu][Zend_Acl][v1.6]Activer le contrôle d'accès

Après discussion avec mon tuteur, j'ai réussi à le convaincre d'utiliser un statut visiteur. JE  vous remercie de m'avoir aider.

Cordialement,
Nikko


Nikko

Etudiant en école d'ingénieur à l'INSIA

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