Что выбрать: rbac или просто проверки

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Что выбрать: rbac или просто проверки

Сообщение mitaichik »

Всем привет. Вопрос ламмерски, поделитесь опытом:

Есть несколько стадий пользователя:
"зарегистрирован, но не прошел проверку email" - доступно часть функционала
"зарегистрирован, и успешно прошел проверку" - доступен весь функционал
"зарегистрирован, и просрочил проверку email" - доступно только "запрос на повторное письмо для проверки"

Целесообразно ли использовать RBAC для проверок этих пользовтаелей?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Что выбрать: rbac или просто проверки

Сообщение zelenin »

rbac всегда полезен. кушать не просит, настраивается легко. разруливать рулзами (rules)
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Что выбрать: rbac или просто проверки

Сообщение mitaichik »

zelenin писал(а):rbac всегда полезен. кушать не просит, настраивается легко. разруливать рулзами (rules)
Да, вы правы. Вот только один вопрос остался:

Как я понял, в рбак ролт задаются статически (то есть один раз присвоил с помощью $auth->assign($role, $this->id), и пока заново такое не сделаешь - она никак не измениться). Можно ли сделать чтоб роль зависила от какого-либо динамического поля юзера (например $user->getRole())?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Что выбрать: rbac или просто проверки

Сообщение zelenin »

mitaichik писал(а):
zelenin писал(а):rbac всегда полезен. кушать не просит, настраивается легко. разруливать рулзами (rules)
Да, вы правы. Вот только один вопрос остался:

Как я понял, в рбак ролт задаются статически (то есть один раз присвоил с помощью $auth->assign($role, $this->id), и пока заново такое не сделаешь - она никак не измениться). Можно ли сделать чтоб роль зависила от какого-либо динамического поля юзера (например $user->getRole())?
https://github.com/zelenin/yii2-rbac-module#phpmanager
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Что выбрать: rbac или просто проверки

Сообщение mitaichik »

zelenin писал(а):
mitaichik писал(а):
zelenin писал(а):rbac всегда полезен. кушать не просит, настраивается легко. разруливать рулзами (rules)
Да, вы правы. Вот только один вопрос остался:

Как я понял, в рбак ролт задаются статически (то есть один раз присвоил с помощью $auth->assign($role, $this->id), и пока заново такое не сделаешь - она никак не измениться). Можно ли сделать чтоб роль зависила от какого-либо динамического поля юзера (например $user->getRole())?
https://github.com/zelenin/yii2-rbac-module#phpmanager
Огромное спасибо!

Один только момент: на мой взгляд в ващей реализации PhpManager не хватает проверки

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

$userId == Yii::$app->user->identity->id
Без такой проверки любому $userId может быть присвоена роль текущего пользователя.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Что выбрать: rbac или просто проверки

Сообщение ElisDN »

Насчёт проверки уже здесь говорили. Просто этот метод с присвоением роли используется только в Yii::$app->user->can(...), а это всегда текущий пользователь. Так что в проверке смысла нет.
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Что выбрать: rbac или просто проверки

Сообщение mitaichik »

ElisDN писал(а):Насчёт проверки уже здесь говорили. Просто этот метод с присвоением роли используется только в Yii::$app->user->can(...), а это всегда текущий пользователь. Так что в проверке смысла нет.
Метод то public - сегодня используется только там, а завтра - нет. Имхо, в любом случае проверка нужна. Но не буду спорить - дело ваше.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Что выбрать: rbac или просто проверки

Сообщение zelenin »

mitaichik писал(а):
ElisDN писал(а):Насчёт проверки уже здесь говорили. Просто этот метод с присвоением роли используется только в Yii::$app->user->can(...), а это всегда текущий пользователь. Так что в проверке смысла нет.
Метод то public - сегодня используется только там, а завтра - нет. Имхо, в любом случае проверка нужна. Но не буду спорить - дело ваше.
частично правы. метод должен ассайнить роль любому юзеру, а не только текущему.
Ответить