проверка @ и ? не работает

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
MadBee
Сообщения: 6
Зарегистрирован: 2017.06.30, 19:13

проверка @ и ? не работает

Сообщение MadBee »

Странно это все.
Подключил стнадартный RBAC
прописал в базе данных роли. admin, editor
через них права срабатывают то есть если сделать проверку

Код: Выделить всё

yii::$app->user->can('admin')
когда надо система покажет true/false
а вот если так:

Код: Выделить всё

yii::$app->user->can('@')
то не работает. то есть можно авторизоваться, можно нет, все равно false. '?' тоже не работает.
Времено обхожусь проверками на гостя

Код: Выделить всё

Yii::$app->user->getIsGuest()
Она работает как надо, но хочется разбораться.

Гуру, помогите, куда копать?
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: проверка @ и ? не работает

Сообщение SiZE »

Собака и вопрос работают только в фильтре https://github.com/yiisoft/yii2/blob/ma ... e.php#L240

Никуда копать не надо. Вместо `Yii::$app->user->can('@')` используйте `!Yii::$app->user->getIsGuest()`.
MadBee
Сообщения: 6
Зарегистрирован: 2017.06.30, 19:13

Re: проверка @ и ? не работает

Сообщение MadBee »

Спасибо большое. Так и буду делать :)
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: проверка @ и ? не работает

Сообщение maleks »

Когда используется RBAC то с гостем/зареганным я обычно обхожусь тем что добавляю две роли - guest и authenticated, к этим ролям привязаны Правила (тут как обычно getIsGuest) и их ставим в defaultRoles.
Следствие - мы можем этим ролям выдавать разрешения.
Yii2 universal module sceleton - for basic and advanced templates
Ответить