У меня есть приложение, написанное на Yii 1.1.8.
В настоящее время я разрабатываю набор модульных тестов для обеспечения прав доступа пользователей.Я использую модуль yii-rights и обнаружил одну странную вещь в этом.
Yii::app()->user->checkAccess($operation)
всегда возвращает false в модульных тестах (не при запуске приложения в браузере).
Я нашел какой-то обходной путь, я звоню на
Yii::app()->getAuthManager()->checkAccess($operation, $userId)
, чтобы проверить доступ для аутентифицированного пользователя, но есть одна проблема - у меня есть некоторые authItems, которые нужны гостевым пользователямдоступ к.И мои тесты не пройдены, потому что у гостевого пользователя нет идентификатора, поэтому я не могу вызвать CheckAccess () из класса CDbAuthManager.checkAccess () из CWebUser также не работает из-за некоторой ошибки.
Перед каждым тестом я вызываю код аутентификации, и он работает - доступ предоставляется (или отклоняется, в зависимости от конфигурации прав) для аутентифицированных пользователей, и Yii :: app () -> user также устанавливается правильно.
Итак, мой вопрос: как я могу заставить Yii :: app () -> user-> checkAccess ($ operation) работать в модульных тестах, или есть ли способ получить какой-то идентификатор гостевого пользователя дляиспользовать другую функцию checkAccess ()?Или есть какой-то другой способ проверки доступа, о котором я не знаю?