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 :

Utilisation de Zend_Acl et Zend_Auth


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut Utilisation de Zend_Acl et Zend_Auth
    Bonjour.

    Voilà ma question va certainement vous sembler stupide mais il n'y a rien à faire, il doit y avoir un concept que je n'ai absolument pas saisi.

    Créer les règles d'accès, tel groupe à accès à tel ou tel ressources ok pas de problème... (d'ailleurs c'est bien ça le malheur tous les tutos sont là dessus).

    Mais comment créer un groupe d'utilisateur concrètement?
    Comment créer une ressource concrètement ou plutôt dois-je donc étendre mon controller avec "Zend_Acl_Resource_Interface"? Et dans la fonction getResourceId() j'imagine que je dois simplement faire ceci:

    public function getResourceId() {
    return 'nomDeMaRessource';
    }

    Ensuite vient le problème de l'identification. Mes utilisateurs sont en DB avec 1 rôle qui leur attribué. Donc oui j'ai un rôle inscrit en DB, mais comment le créer dans le framework?

    En fait j'ai compris comment utiliser les objets Zend_Acl et Zend_Auth mais je suis incapable de les instancier et je ne trouve nulle part d'explication 'claire'.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Voila bien le souci, tout est toujours basé sur le même exemple et en plus c'est pas simple.

    Je vais te montrer comment moi je fais une authentification, ce code je ne l'ai pas créer, mais repris et adapter.

    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
     
    $db = new LoginDb();//j'instancie ma classe Model
     
     $authAdapter = new Zend_Auth_Adapter_DbTable($db->get_db());//je passe en paramètre la connection à la db                $authAdapter->setTableName('login');//je passe le nom de la table
    $authAdapter->setIdentityColumn('log_nom');//le nom de la colonne user
    $authAdapter->setCredentialColumn('log_passwd');//le nom de la colonne password
                    $authAdapter->setIdentity($formData['log_nom'])->setCredential($formData['log_passwd']);//ici je passe les infos recu d'un formulaire
    $auth = Zend_Auth::getInstance();//je crée une instance d'authentification
    $resultat = $auth->authenticate($authAdapter);//ici on fais l'équivalent d'un query
     // On essaye d'identifier l'utilisateur avec les informations du formulaire valide
     if ($resultat->isValid()) { // si c'est ok
         $data = $authAdapter->getResultRowObject(null, 'log_passwd');
         $auth->getStorage()->write($data); // on écrit dans le stockage les informations de l'utilisateur
       $this->_redirect('/'); // on redirige vers l'index
    }else{
     
    //c'est pas bon
    }

    A partir de là, je peux vérifier si un utilisateur est connecté ou non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //si je ne suis pas connecté
     
    if (! Zend_Auth::getInstance()->hasIdentity())
    {
    	$this->_redirect('/');
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Ok merci.

    Mais je ne suis pas certain que cela réponde entièrement à ma question. Comment puis-je connaitre le rôle (càd un groupe) de l'utilisateur?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Mes rôles sont définis dans la db avec pour nom de colonne log_acl

    donc je fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(Zend_Auth::getInstance()-> getIdentity() -> log_acl =="admin"){
    //il est administrateur
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Ok donc en fait tu n'utilises pas le système "standard" on va dire.
    Tu ne fais pas les fameux $ressource->allow($user)


    Enfin rien de m'empêche de créer ma propre classe de vérification d'accès en fait.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Oui, mais là, ce n'est que la vérification de l'user.

    Après j'utilise les acl pour savoir qui est qui

Discussions similaires

  1. [ZF 1.10] Utilisation de Zend_Acl
    Par ESTYOUNES2008 dans le forum Zend_Acl & Zend_Auth
    Réponses: 2
    Dernier message: 11/05/2010, 15h15
  2. Zend_Acl et Zend_Auth
    Par Invité dans le forum Zend Framework
    Réponses: 2
    Dernier message: 10/05/2010, 11h45
  3. [ZF 1.7] Utilisation de Zend_Acl
    Par KiMbOoO dans le forum Zend_Acl & Zend_Auth
    Réponses: 2
    Dernier message: 19/02/2009, 13h56
  4. Utilisation de Zend_Acl
    Par ~dementia dans le forum Zend_Acl & Zend_Auth
    Réponses: 10
    Dernier message: 10/12/2008, 20h31
  5. Zend_auth et Zend_Acl
    Par salmoucha dans le forum Zend_Acl & Zend_Auth
    Réponses: 6
    Dernier message: 11/03/2008, 12h13

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