Я использую Zend_Navigation
и пытаюсь интегрировать его с Zend_Acl
.Каждая страница в навигации имеет атрибут privilege
.Что я не могу определить, так это как определить несколько привилегий для одной страницы.
Вариант использования: Страница, предназначенная для управления пользователями.Я хочу отобразить эту страницу (в навигации), если текущая вошедшая в систему роль пользователя имеет права 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;
}