Я использую Zend_Navigation
и пытаюсь интегрировать его с Zend_Acl
. Каждая страница в навигации имеет атрибут privilege
. Я не могу определить, как определить несколько привилегий для одной страницы.Предоставление страниц навигации Zend Несколько привилегий ACL
Использование: Страница, предназначенная для управления пользователями. Я хочу отобразить эту страницу (в навигации), если текущая подписанная роль пользователя имеет add
, edit
или delete
привилегии на ресурсе Users
.
Пример вход в навигационной 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;
}
Я пробовал это, и он не работает, даже если у пользователя есть все привилегии для этого ресурса. – Sonny