
Уже рассказано, как практично использовать авторизацию на основе RBAC с расширением yii2-user. Теперь в более широком смысле посмотрим на тему авторизации в Yii2.
Лучше всего описана тема в официальной документации - Авторизация. Там красиво с картиночками, изучите.
Далее скажу из опыта, что использовать RBAC удобно, когда планируется именно иерархия ролей пользователей с наследованием. То есть, когда более высокие роли включают в себя доступы, которыми наделены более низкие роли по иерархии. "Так как привилегии не назначаются пользователям непосредственно, и приобретаются ими только через свою роль (или роли), управление индивидуальными правами пользователя по сути сводится к назначению ему ролей".
Если необходимо ограничить доступ у пользователя с более низкими правами к просмотру 'view' (который общий для всех прав), доступного пользователю с более высокими правами, то сделал проверку в контроллере в действии 'view' так:
$model = $this->findModel($id); $level = 0; if(Yii::$app->user->can('student free')) $level = 1; if(Yii::$app->user->can('student2')) $level = 2; if(Yii::$app->user->can('student3')) $level = 3; if(($level >= $model->course_id) || Yii::$app->user->can('admin')) { ... } else { throw new HttpException(403,'У вас недостаточно прав для доступа к этой странице.'); }
Такое понадобилось из-за того, что сам вид 'view' - общий для всех ролей.
13 августа 2016, Программирование, веб-кодинг / Метки: авторизация RBAC user

