假设我有类/模型
我想只允许作为项目协作者的用户添加列表。我怎么做。我知道我应该使用Zend_Acl_Assert
但是我将什么作为资源传递。对于编辑/删除,我将传递列表本身。对于添加它似乎更像是应该是一个项目。如果我将ListsController#addAction()
移到ProjectsController#addListAction()
,这似乎更正确?这是一种可能性
但是,如果我想做ListsController#addAction()
之类的事情,我该如何设置我的acl?
$acl->allow('user', 'list', 'add', new assertClass());
将'list'作为资源传递。我可以以某种方式传递项目对象吗?它似乎没有意义
答案 0 :(得分:1)
我可以以某种方式传递项目对象吗?
只要对象实现Zend_Acl_Resource_Interface
并且已在ACL中注册,您就可以使用任何想要的东西。
答案 1 :(得分:0)
为什么要传递列表进行编辑和删除,似乎没必要?没有通过列表就可以正常工作。
如果你需要额外的检查,我所做的就是在我的模型preSave上添加一个ensurePermission检查,它会检查ACL以及其他因素以确定它是好的。