У нас есть следующая структура для нашего приложения
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');
Это представляет базу данных приложений колледжа, а группы / поля являются компонентами приложения колледжа. Исходя из вышесказанного, заявитель имеет право на редактирование поля 2.
Вся структура хранится как объект acl в базе данных mysql.
Через некоторое время администраторы решат переместить field2 из group1 в group2, как можно изменить объект acl?
Я проверил файл Acl.php, но нет методов, в которых можно изменить родительский ресурс ресурса и тем самым автоматически обновить правила / разрешения.
Спасибо.
Shashikant