Как обновить назначения yii RBAC

Я работаю над простым менеджером yii RBAC. Все данные RBAC хранятся в базе данных и все работает нормально, но...

Когда я решаю управлять назначениями RBAC, у меня возникают проблемы. Например, я назначаю операцию «myNewOperation» пользователю «admin». Все идет нормально, accessControll и checkAccess() делают свое дело. Затем я решаю удалить запись о назначении из базы данных, но accessControll и checkAccess() все еще отображают, что у пользователя есть такие права. Я пытался выйти из системы, очистить кеш, уничтожить сеанс и очистить куки, но ничего не изменилось. Пользователь «admin» по-прежнему имеет права «myNewOperation», но «myNewOperation» физически удален из таблицы назначений. Что может быть не так?


person user3552003    schedule 19.04.2014    source источник
comment
может быть у него есть какие-то другие права, которые включают в себя эти права?   -  person Alex    schedule 19.04.2014
comment
Нет, я очищаю всю таблицу заданий, но это волшебство все равно происходит   -  person user3552003    schedule 19.04.2014
comment
показать accessControll и checkAccess   -  person Alex    schedule 19.04.2014


Ответы (1)


Да, я нашел причину. Мне нужно покопаться в CDbAuthManager, чтобы понять это. Я сделал логическую ошибку в отношениях ролей. Я использовал роль по умолчанию «аутентифицированный», поэтому все аутентифицированные пользователи автоматически получают эту роль. И я создаю дочернюю операцию из этой роли. По логике yii, если доступ не найден, поиск будет продолжен в родительской ветке. Поэтому я удалил назначения, но «аутентифицировался» как родитель, поэтому у меня всегда было «истинное» значение. Спасибо.

person user3552003    schedule 20.04.2014