我正在使用Zend_Navigation
並試圖將它與Zend_Acl
進行整合。導航中的每個頁面都有一個privilege
屬性。我無法確定的是如何爲單個頁面定義多個權限。給Zend導航頁面多個ACL權限
使用案例:用於管理用戶的頁面。如果當前登錄用戶的角色在Users
資源上具有add
,edit
或delete
權限,我想要顯示該頁面(在導航中)。
實施例條目在導航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>
使用如上述以逗號分隔的列表中不借給所需的行爲。
UPDATE
通過代碼挖後,我發現,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;
}
我試過了,即使用戶擁有該資源的所有權限,也無法正常工作。 – Sonny 2010-03-16 18:40:59