Как настроить систему доступа пользователям на Yii2?
Пытаюсь настроить систему доступа типа admin, moder, user на Yii2. Чем больше копаюсь тем сильнее перестаю понимать почему все так усложняется. Понятно система RBAC гибкая и все такое но для ее использования требуется 4 таблицы в DB и все слишком сложно.
то как сделать чтобы максимально просто определить 3 роли : admin, moder, user
а к какой роли принадлежит текущий пользователь определять тупо по полю из DB,
просто если $user->type === 'admin' то присвоить ему роль admin и все?
Самый простой метод который нашел, не понимаю почему о нем не заикаются в описаний Yii :
по совету grinat
создаем компонент WebUser который наследует \yii\web\User
в нем переопределяем функцию can :
public function can($permissionName, $params = [], $allowCaching = true)
{
....
}
потом в конфиге используем для компонента user вместо стандартного свой класс
'user' =>
[
'identityClass' => 'app\models\User',
'class' => 'app\components\WebUser',
],
все! теперь в can можно ловить строку из roles и както ее обрабатывать например так :
public function can($permissionName, $params = [], $allowCaching = true)
{
if( $permissionName === "admin" and $this->identity->superuser ){
return true;
}