gpt4 book ai didi

php - 赋予 Zend 导航页面多个 ACL 权限

转载 作者:行者123 更新时间:2023-12-02 05:14:09 27 4
gpt4 key购买 nike

我正在使用 Zend_Navigation 并试图将它与 Zend_Acl 集成。导航中的每个页面都有一个 privilege 属性。我无法确定的是如何为单个页面定义多个权限。

用例:用于管理用户的页面。如果当前登录用户的角色对 具有 addeditdelete 权限,我想显示该页面(在导航中) >用户资源。

导航 XML 中的示例条目:

<admin_users>
<label>Users</label>
<route>default</route>
<controller>admin</controller>
<action>users</action>
<resource>Users</resource>
<privilege>add,edit,delete</privilege>
</admin_users>

如上使用逗号分隔的列表不会提供所需的行为。


更新

深入研究代码后,我发现Zend_Navigation_Page 只允许一个字符串值。是否有人扩展了此类或找到了绕过此限制的其他方法?

/**
* Sets ACL privilege associated with this page
*
* @param string|null $privilege [optional] ACL privilege to associate
* with this page. Default is null, which
* sets no privilege.
* @return Zend_Navigation_Page fluent interface, returns self
*/
public function setPrivilege($privilege = null)
{
$this->_privilege = is_string($privilege) ? $privilege : null;
return $this;
}

最佳答案

我意识到我的问题是我缺少“查看”类型的权限。当我加载资源权限时,如果用户对该资源具有任何权限,我现在会授予该资源的“管理员”权限。然后我在页面上使用“管理员”权限。

<admin_users>
<label>Users</label>
<route>default</route>
<controller>admin</controller>
<action>users</action>
<resource>Users</resource>
<privilege>admin</privilege>
</admin_users>

关于php - 赋予 Zend 导航页面多个 ACL 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2448873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com