需要建议设置Zend_Acl

时间:2010-12-21 14:27:34

标签: zend-framework acl zend-acl

假设我有类/模型

  • 项目(有很多名单)
  • 列表

我想只允许作为项目协作者的用户添加列表。我怎么做。我知道我应该使用Zend_Acl_Assert但是我将什么作为资源传递。对于编辑/删除,我将传递列表本身。对于添加它似乎更像是应该是一个项目。如果我将ListsController#addAction()移到ProjectsController#addListAction(),这似乎更正确?这是一种可能性

但是,如果我想做ListsController#addAction()之类的事情,我该如何设置我的acl?

$acl->allow('user', 'list', 'add', new assertClass());

将'list'作为资源传递。我可以以某种方式传递项目对象吗?它似乎没有意义

2 个答案:

答案 0 :(得分:1)

  

我可以以某种方式传递项目对象吗?

只要对象实现Zend_Acl_Resource_Interface并且已在ACL中注册,您就可以使用任何想要的东西。

答案 1 :(得分:0)

为什么要传递列表进行编辑和删除,似乎没必要?没有通过列表就可以正常工作。

如果你需要额外的检查,我所做的就是在我的模型preSave上添加一个ensurePermission检查,它会检查ACL以及其他因素以确定它是好的。