Nous avons une la structure suivante pour notre applicationModification des parents pour une ressource - ACL Zend - 1.7.3
require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();
$acl = new Zend_Acl();
// application
$acl->add(new Zend_Acl_Resource('application1'));
// groups
$acl->add(new Zend_Acl_Resource('group1'), 'application1');
$acl->add(new Zend_Acl_Resource('group2'), 'application1');
// fields
$acl->add(new Zend_Acl_Resource('field1'), 'group1');
$acl->add(new Zend_Acl_Resource('field2'), 'group1');
$acl->add(new Zend_Acl_Resource('field3'), 'group2');
$acl->add(new Zend_Acl_Resource('field4'), 'application1');
// roles
$acl->addRole(new Zend_Acl_Role('applicant'));
$acl->addRole(new Zend_Acl_Role('admin'), 'applicant');
// permissions
$acl->allow('applicant', 'application1', 'view');
$acl->allow('applicant', 'group1', 'edit');
Cela représente une base de données des applications des collèges et des groupes/domaines sont des composants d'une application collège. D'après ce qui précède, le demandeur a l'autorisation d'édition pour modifier field2.
La structure entière est stockée en tant qu'objet acl dans une base de données mysql. Après un certain temps, les administrateurs décident de déplacer le champ2 de groupe1 à groupe2, comment changer l'objet acl? J'ai vérifié le fichier Acl.php mais il n'y a pas de méthodes dans lesquelles on change le parent d'une ressource et met ainsi automatiquement à jour les règles/permissions.
Merci.
Shashikant
Je ne suis pas sûr si ce que le CG suggère est une bonne idée. Il s'agit en fait de la duplication de la fonctionnalité Zend_Acl dans un système personnalisé, donc vous ne pouvez en aucun cas utiliser Zend_Acl. Même [Zend Documentation] [1] suggère d'utiliser la sérialisation et le stockage dans la base de données ou dans le cache, donc je pense que c'est bon. [1]: http://framework.zend.com/manual/fr/zend.acl.advanced.html#zend.acl.advanced.storing –