Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour a tous.
Je suis débutant a l'utilisation de ZENDFRAMEWORK 1.10, et je suis entrain de m'intéresser a la gestion des droits avec Zend_ACL.
J'ai compris son mécanisme, mais je ne sais pas ou ces paramètres doivent êtres définis. Je pense soit a les définir dans un contrôleur prévu a cet effet (ce qui me semble bizarre tous de même), ou dans ma classe bootstrap (ce qui me parait mieux). J'avoue que je suis un peut perdu. Il y a des tutoriels très explicitent sur le fonctionnement de cette classe, mais qui ne précise malheureusement pas ou implémenter les classes dans l'application.
Par exemple: j'ai compris comment créer des ressources pour différentes règles:
on modifie le registre des rôles
$acl->addRole(new Zend_Acl_Role('marketing'), 'staff');
on créer les ressources pour les règles
$acl->addResource(new Zend_Acl_Resource('newsletter'));
// news
$acl->addResource(new Zend_Acl_Resource('news'));
// dernières news (latest herite de news)
$acl->addResource(new Zend_Acl_Resource('latest'), 'news');
// annonces (announcement hérite de news)
$acl->addResource(new Zend_Acl_Resource('announcement'), 'news');
Ensuite ACL autorise ou non l'accès:
// Le Marketing doit être capable de publier
// et d'archiver les newsletters et les dernières news
$acl->allow('marketing',
array('newsletter', 'latest'),
array('publish', 'archive'));
// Staff (et marketing, par héritage),
// n'ont pas la permission de relire les dernières news
$acl->deny('staff', 'latest', 'relire');
// Personne (y compris les administrateurs)
// n'a la permission d'archiver des annonces
$acl->deny(null, 'annonce', 'archive');
Et on interroge les ACLs pour accéder ou non aux ressources:
echo $acl->isAllowed('staff', 'newsletter', 'publish') ?
"autorisé" : "refusé"; // refusé
echo $acl->isAllowed('marketing', 'newsletter', 'publish') ?
"autorisé" : "refusé"; // autorisé
echo $acl->isAllowed('staff', 'latest', 'publish') ?
"autorisé" : "refusé"; // refusé
echo $acl->isAllowed('marketing', 'latest', 'publish') ?
"autorisé" : "refusé"; // autorisé
echo $acl->isAllowed('marketing', 'latest', 'archive') ?
"autorisé" : "refusé"; // autorisé
echo $acl->isAllowed('marketing', 'latest', 'revise') ?
"autorisé" : "refusé"; // refusé
echo $acl->isAllowed('editor', 'announcement', 'archive') ?
"autorisé" : "refusé"; // refusé
echo $acl->isAllowed('administrator', 'announcement', 'archive') ?
"autorisé" : "refusé"; // refusé
Mais est ce un seul et même fichier.php?
est ce plusieurs fichiers différents, dans ce cas ou les placer dans l'arborescence de mon appli?
merci par avance de vos conseils
Hors ligne
non il n'y a vraiment personne pour me venir en aide?
Hors ligne