Zend framework 利用父/子关系构建Zend_Acl和CRUD
我想知道我应该如何利用父/子关系为CRUD构建ACL 这些项目都是针对政客的。托德利斯特有托德 项目有各种控制器操作Zend framework 利用父/子关系构建Zend_Acl和CRUD,zend-framework,acl,zend-acl,Zend Framework,Acl,Zend Acl,我想知道我应该如何利用父/子关系为CRUD构建ACL 这些项目都是针对政客的。托德利斯特有托德 项目有各种控制器操作 /项目/添加 /项目/编辑/{projId} /projects/delete/{projId} /待办事项列表/add/{projId} /待办事项列表/编辑/{todoListId} 正如您在层次结构中看到的,某些操作的ID不是指向它们自己(例如,todo lists controller->todo list resource),而是指向它们的父操作 所以我有了设置(
- /项目/添加
- /项目/编辑/{projId}
- /projects/delete/{projId}
- /待办事项列表/add/{projId}
- /待办事项列表/编辑/{todoListId}
- ACL控制器插件(preDispatch)
- 将角色设置为loggedin user或“unauthenticated”
- 将资源设置为控制器名称
- 将权限设置为操作名称
- 如果设置了请求参数“id”,则获取实现
Zend\u Acl\u Resource\u接口的实际实体(我使用的是ORM)。这就是问题的症结所在。我通常会从控制器名称中获取资源,但是对于
,我必须知道如何获取父实体(项目)。有了这个设置,我将不得不改变特权,以类似“addTodoList”的东西。这样,项目acl断言类将不得不处理这些内容。控制器操作和ACL逻辑之间也将存在断开连接。可以吗/todo lists/add
你是如何设置ACL的 使用Zend_Acl_断言,为projectid和todoId创建断言。在给予许可时
$myAcl->allow($role,'projects','edits',new My_Project_Assertion());
由于大写字母(或定义您自己的调度程序)AddToDoListation wd工作,您不能使用操作“AddToDoListation”