Страница 1 из 1

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

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

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

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

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

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

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

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

Гуру, помогите, куда копать?

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

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

Никуда копать не надо. Вместо `Yii::$app->user->can('@')` используйте `!Yii::$app->user->getIsGuest()`.

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

Добавлено: 2021.01.05, 07:05
MadBee
Спасибо большое. Так и буду делать :)

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

Добавлено: 2021.01.05, 07:31
maleks
Когда используется RBAC то с гостем/зареганным я обычно обхожусь тем что добавляю две роли - guest и authenticated, к этим ролям привязаны Правила (тут как обычно getIsGuest) и их ставим в defaultRoles.
Следствие - мы можем этим ролям выдавать разрешения.