Переключение ролей Yii2 после входа в систему

У пользователя есть 3 роли.

  1. РольОдин
  2. РольДва
  3. РольТри

После входа в систему я хочу активировать одну из его ролей в активном режиме, а остальные роли в неактивном режиме. Есть ли в Yii2 техника переключения ролей? Или мы должны сделать свою собственную логику.

Вот как я пытаюсь добиться этого...

$auth = new DbManager;
$auth->init();

//here I will get all roles of user              
$roles = $auth->getRolesByUser(Yii::$app->user->identity->id);

Теперь, после этого, как можно установить активную роль из переменной $roles. В промежутках пользователь также может активировать другие роли. Я здесь смущен, на самом деле в yii2 нет такой функциональности, как переключение ролей в любое время после входа в систему.


person Dharmendra Singh    schedule 11.12.2018    source источник
comment
используя RBAC, вы можете назначить пользователю несколько ролей, чтобы он мог выполнять действия, разрешенные этими ролями, но нет ничего похожего на временную деактивацию одной из ролей для пользователя, вам придется удалить auth_assignment для пользователя против этого конкретного роли, если вы не хотите, чтобы пользователь выполнял какую-либо задачу, специфичную для какой-либо роли, но это означает, что роль будет удалена, и вам придется добавить ее снова, возможно, вы придумали свое собственное решение, расширив классы компонентов, которые несут ответственность за эту задачу, насколько я знаю.   -  person Muhammad Omer Aslam    schedule 11.12.2018
comment
Ок. @MuhammadOmerAslam, если назначить новую роль вошедшему в систему пользователю, как это отреагирует. страница в соответствии с ролью будет меняться во время выполнения??   -  person Dharmendra Singh    schedule 12.12.2018