#php #zend-framework #acl
#php #zend-framework #acl
Вопрос:
Я пытаюсь выяснить, имеет ли роль явный доступ к ресурсу, используя Zend Acl, но метод Zend Acl isAllowed проверяет не только роль, но и любые роли, которые наследует указанная роль, на что мне наплевать, я только хочу знать, разрешена ли роль сама по себе.
Для некоторого контекста я создаю интерфейс для администраторов, позволяющий изменять правила acl для каждого пользователя, поэтому я хочу, чтобы они могли видеть, разрешена ли роль явно, имеет ли она унаследованный доступ или ей явно отказано в доступе к ресурсу.
Ответ №1:
Обычно вы читаете настройки для ACL откуда-нибудь, скажем, из базы данных. Это то место, на которое вам следует обратить внимание. Вам все равно нужно написать это там.
Ответ №2:
Я думаю, вы неправильно смотрите на Zend_Acl. Вся система основана на родительском / дочернем
Если вам не нужны отношения родитель / потомок, вам придется определить каждое правило для каждой роли:
Гость может войти в систему, Гость не может выйти из системы
Пользователь может войти в систему, пользователь может выйти из системы
Или вы можете расширить Zend_Acl и создать свой собственный метод isExplicitAllowed().