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 :

Zend_auth et Zend_Acl


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut Zend_auth et Zend_Acl
    Bonjour,
    j'ai utilisé Zend_auth pour ouvrir des sessions aux différents utilisateurs de l'application. Mais, j'ai des pages comme supprimer.phtml et modifier.phtml qui ne doit être accèdées que par l'administrateur.
    J'ai créé une table user pour la gestion des utilisateur. Mais j'ai pas compris comment utilisé Zend_acl dans ce cas. Car j'ai vu un tutoriel qui permet d'afficher si tel utilisateur a le droit d'accèder à une page ou non juste en affichant un message.
    voici le lien:
    http://www.kitpages.fr/zf_zendAcl.php

    1) Comment le programme sait que c'est bien l'administrateur qui est connecté?
    2) Comment peut-il interdire à un autre utilisateur d'accéder à la page "supprimer"?
    Merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    Bonjour,
    SVP, dans l'utilisation de Zend_Acl, est ce qu'on suffit de faire tests d'accès à une page ou cette classe peut interdire à un utilisateur l'accès à cette page.
    c'est à dire, est ce qu'il suffit de faire:

    ici je crée et je définie les rôles:
    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
     
    // Création de l'objet Auth
    $auth = Zend_Auth::getInstance();
     
    // Création de l'objet Acl
    $acl = new Zend_Acl($auth); // see 
     
    // creation de roles "groupes"
    $roleChefs = new Zend_Acl_Role("chefs");
    $roleEmployes = new Zend_Acl_Role("employes");
    // creation de roles "individus"
    $roleDurand = new Zend_Acl_Role("durand");
    $roleMartin = new Zend_Acl_Role("martin");
    $roleLefevre = new Zend_Acl_Role("lefevre");
     
    // creer des ressources
    $resourceBlog = new Zend_Acl_Resource("blog");
     
    // creer la hierarchie de roles
    $acl->addRole($roleChefs);
    $acl->addRole($roleEmployes);
     
    $acl->addRole($roleDurand,array("employes","chefs"));
    $acl->addRole($roleMartin,"employes");
    $acl->addRole($roleLefevre,"employes");
     
    // ajouter les ressources au moteur
    $acl->add($resourceBlog);
     
    // indiquer qui a le droit de faire quoi
    $acl->allow("employes","blog","read");
    $acl->allow("chefs","blog",array("read","write"));
    ici je test si un utilisateur a le droit d'accèder à une page juste en écrivant son rôle par rapport au "blog":
    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
     
    echo $acl->isAllowed('martin','blog','read')?
        "martin peut lire le blog":
        "martin ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('martin','blog','write')?
        "martin peut écrire dans le blog":
        "martin ne peut pas écrire dans le blog";
    echo "<br/>";
     
    echo $acl->isAllowed('lefevre','blog','read')?
        "lefevre peut lire le blog":
        "lefevre ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('lefevre','blog','write')?
        "lefevre peut écrire dans le blog":
        "lefevre ne peut pas écrire dans le blog";
    echo "<br/>";
     
    echo $acl->isAllowed('durand','blog','read')?
        "durand peut lire le blog":
        "durand ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('durand','blog','write')?
        "durand peut écrire dans le blog":
        "durand ne peut pas écrire dans le blog";
    echo "<br/>";
    Merci

  3. #3
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par salmoucha Voir le message
    Bonjour,
    SVP, dans l'utilisation de Zend_Acl, est ce qu'on suffit de faire tests d'accès à une page ou cette classe peut interdire à un utilisateur l'accès à cette page.
    ??????????????????????????

    Citation Envoyé par salmoucha Voir le message
    c'est à dire, est ce qu'il suffit de faire:

    ici je crée et je définie les rôles:
    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
     
    // Création de l'objet Auth
    $auth = Zend_Auth::getInstance();
     
    // Création de l'objet Acl
    $acl = new Zend_Acl($auth); // see 
     
    // creation de roles "groupes"
    $roleChefs = new Zend_Acl_Role("chefs");
    $roleEmployes = new Zend_Acl_Role("employes");
    // creation de roles "individus"
    $roleDurand = new Zend_Acl_Role("durand");
    $roleMartin = new Zend_Acl_Role("martin");
    $roleLefevre = new Zend_Acl_Role("lefevre");
     
    // creer des ressources
    $resourceBlog = new Zend_Acl_Resource("blog");
     
    // creer la hierarchie de roles
    $acl->addRole($roleChefs);
    $acl->addRole($roleEmployes);
     
    $acl->addRole($roleDurand,array("employes","chefs"));
    $acl->addRole($roleMartin,"employes");
    $acl->addRole($roleLefevre,"employes");
     
    // ajouter les ressources au moteur
    $acl->add($resourceBlog);
     
    // indiquer qui a le droit de faire quoi
    $acl->allow("employes","blog","read");
    $acl->allow("chefs","blog",array("read","write"));
    ici je test si un utilisateur a le droit d'accèder à une page juste en écrivant son rôle par rapport au "blog":
    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
     
    echo $acl->isAllowed('martin','blog','read')?
        "martin peut lire le blog":
        "martin ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('martin','blog','write')?
        "martin peut écrire dans le blog":
        "martin ne peut pas écrire dans le blog";
    echo "<br/>";
     
    echo $acl->isAllowed('lefevre','blog','read')?
        "lefevre peut lire le blog":
        "lefevre ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('lefevre','blog','write')?
        "lefevre peut écrire dans le blog":
        "lefevre ne peut pas écrire dans le blog";
    echo "<br/>";
     
    echo $acl->isAllowed('durand','blog','read')?
        "durand peut lire le blog":
        "durand ne peut pas lire le blog";
    echo "<br/>";
    echo $acl->isAllowed('durand','blog','write')?
        "durand peut écrire dans le blog":
        "durand ne peut pas écrire dans le blog";
    echo "<br/>";
    Merci
    oui c'est ça.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    c a d que le reste on doit le programmer manuellement?
    Zend ne peut pas interdire automatiquement l'accès d'un utilisateur à une telle page?

  5. #5
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Moi aussi je trouve cela d'un intérêt très limité mais c'est tout ce qu'on nous propose pour le moment.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    ok, donc si je fait ces tests manuellement.
    Je les met dans le contrôleur IndexController et sous la fonction preDispatch()?
    Ou bien?

  7. #7
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    étant donné que la ressource est un module (ou controleur) il vaut mieux que tu vérifie ton ACL avant d'être routé sur le controleur "index" je te conseil en conséquence de jeter un coup d'oeil ici : http://framework.zend.com/manual/fr/...r.plugins.html

Discussions similaires

  1. Zend_Acl et Zend_Auth
    Par Invité dans le forum Zend Framework
    Réponses: 2
    Dernier message: 10/05/2010, 11h45
  2. Exemple simple Zend_Auth/Zend_Acl + BDD ?
    Par Delprog dans le forum Zend_Acl & Zend_Auth
    Réponses: 9
    Dernier message: 30/10/2009, 00h15
  3. Zend_Acl / Zend_Auth scénario d'exemple
    Par linuxxp dans le forum Zend_Acl & Zend_Auth
    Réponses: 3
    Dernier message: 18/05/2009, 13h57
  4. Utilisation de Zend_Acl et Zend_Auth
    Par k o D dans le forum Zend_Acl & Zend_Auth
    Réponses: 10
    Dernier message: 02/10/2008, 14h28
  5. Erreur dans le tutoriel : "Zend_Acl / Zend_Auth scénario d'exemple"
    Par Invité dans le forum Zend_Acl & Zend_Auth
    Réponses: 3
    Dernier message: 10/08/2008, 19h52

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