0

假设我有类/模型

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

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

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

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

将“列表”作为资源传递。我可以以某种方式传递一个项目对象吗?这似乎没有意义

4

2 回答 2

1

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

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

于 2010-12-21T21:38:52.130 回答
0

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

如果您需要额外的检查,我所做的是在我的模型 preSave 上添加一个 ensurePermission 检查,它会检查 ACL 等以确定一切正常。

于 2010-12-21T22:19:34.560 回答