2

我认为 Zend ACL 用于为用户类型(学生、教师)授予权限。它可以用于根据内容授予权限吗?我的意思是这篇博文是由这个用户写的,他们可以编辑它。其他人无法编辑。Zend ACL 可以满足这个要求吗?

4

2 回答 2

3

是的,ZF 中的 Zend ACL 可用于确定所有者权限和设置以允许内容所有者编辑他们自己的帖子等。我不确定这个地方是否有您想要的具体示例,但您可以查看一些 Zend ACL 教程zftutorials.com

更新

根据您的组等的设置方式,可以通过多种不同的方式设置 ACL。正因为如此,很难提供一个明确的方法来做到这一点,但它的要点是获得每个所有者可以做什么的权限设置。然后在发生该操作的控制器中,您将拥有如下内容:

if (!$this->_helper->acl->isAllowedOwn($author->user_id, 'content', 'edit')) {

这将告诉作者是否被允许编辑他们自己的内容。这些规则需要以某种方式设置,无论是通过配置文件还是 xml 文件,zftutorials 的位置可能会有所启发。

如果我有时间编写教程,我会在这里更新。但是,是的,与 ZF 一起编写教程是一个相当乏味的过程,因为每个人都有不同的方式来处理项目和偏好,更不用说设置它所需的所有内部工作。

于 2010-10-21T15:26:01.790 回答
3

您可以为 Zend_Acl 创建自定义断言。这些自定义断言可以allow()作为第四个参数传递给常规方法,例如

$acl->allow(null, null, null, new MyCustomAssertion());

断言可以包含您想要的任何代码。它必须返回一个布尔值,然后将考虑进行任何 ACL 检查,例如,此用户 ID是否允许使用该权限该自定义检查访问该资源

于 2010-10-21T16:35:01.410 回答