Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Acl & Zend_Auth
Zend_Acl & Zend_Auth Forum d'entraide pour les composants Zend_Acl & Zend_Auth du Zend Framework (contrôle d'accès, gestion des droits, authentification, etc.). Avant de poster -> Cours Zend_Acl et Zend_Auth.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2008, 15h11   #1
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
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.
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h03   #2
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
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 :
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 :
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
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h21   #3
Membre Expert
 
Avatar de nicolas.sitbon
 
Inscription : août 2007
Messages : 2 024
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2007
Messages : 2 024
Points : 2 117
Points : 2 117
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 :
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 :
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.
nicolas.sitbon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h30   #4
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
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?
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h47   #5
Membre Expert
 
Avatar de nicolas.sitbon
 
Inscription : août 2007
Messages : 2 024
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2007
Messages : 2 024
Points : 2 117
Points : 2 117
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.
nicolas.sitbon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h59   #6
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
ok, donc si je fait ces tests manuellement.
Je les met dans le contrôleur IndexController et sous la fonction preDispatch()?
Ou bien?
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 12h13   #7
Membre Expert
 
Avatar de nicolas.sitbon
 
Inscription : août 2007
Messages : 2 024
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2007
Messages : 2 024
Points : 2 117
Points : 2 117
é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
nicolas.sitbon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web