|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
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. |
|
|
00
|
|
|
#2 | ||||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 183 ![]() |
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 :
A partir de là, je peux vérifier si un utilisateur est connecté ou non Code :
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
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? |
|
|
00
|
|
|
#4 | ||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 183 ![]() |
Mes rôles sont définis dans la db avec pour nom de colonne log_acl
donc je fais ceci Code :
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
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. |
|
|
00
|
|
|
#6 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 183 ![]() |
Oui, mais là, ce n'est que la vérification de l'user.
Après j'utilise les acl pour savoir qui est qui
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
|
|
|
00
|
|
|
#8 | ||||||||||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 183 ![]() |
Ok,
Alors concrètement pour mes sites j'ai besoin de trois ou quatre statut(admin,organisation,invité.....). en gros on accès à cette partie du site ou pas. En dehors de zf je le fais avec des $_session Code :
Donc je crée des roles identique aux statut qui se retrouve dans ma db, et puis je vérifie qu'ils sont bien isAllowed en gros dans une de mes apllications, on va avoir les statuts suivants - innactif - annuaire - introduction - administrateur - organisation donc dans ma db chaque user à un de ces statut. puis je crée ma classe acl Code :
Par contre j'instancie cette classe dans une session au moment du login en gros ,pour une session avec zf il faut faire ainsi Code :
ensuite je remplace ceci Code :
Code :
Si tu veux ici, on m'explique le principe du plugin
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||||||||||
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
Ahahaha ça je peux t'expliquer pour le plugin.
En gros c'est pour éviter de devoir mettre ton code de vérification (ci-dessous) dans tous tes controllers. Code :
Dans cette méthode et bien tu mets le code ci-dessus! Et hop plus besoin de vérifier dans tes futurs controller |
||
|
|
00
|
|
|
#10 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 183 ![]() |
peux tu me mettre un petit exemple.
A nous deux on va y arriver et on fera un tuto
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#11 | ||||
|
Membre du Club
![]() Inscription : septembre 2004 Messages : 191 ![]() |
Alors tu as une solution énoncée ici par Julien Pauli
Mais en gros c'est assez simple. Tu crées une classe plugin dans laquelle tu définis la méthode preDispatch() Code :
Ensuite dans ton bootstrap tu dois enregistrer le public: Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com