我们的应用程序有以下结构
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的编辑权限。
整个结构存储为 mysql 数据库中的 acl 对象。
在管理员决定将 field2 从 group1 移动到 group2 之后,如何更改 acl 对象?
我检查了 Acl.php 文件,但没有任何方法可以更改资源的父级,从而自动更新规则/权限。
谢谢。
沙什康特