Если назначать роль через это расширение в его админке RBAC -роль присваивается
Если вручную в контроллере - нет
Ошибка
Код: Выделить всё
Integrity constraint violation – yii\db\IntegrityException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'user-3' for key 'PRIMARY'
The SQL being executed was: INSERT INTO `auth_assignment` (`user_id`, `item_name`, `created_at`) VALUES ('3', 'user', 1556900032)
Error Info: Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry 'user-3' for key 'PRIMARY'
)
↵
Caused by: PDOException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'user-3' for key 'PRIMARY'
В контроллере
Код: Выделить всё
public function actionSignup()
{
$userRole = Yii::$app->authManager->getRole('user');
$model = new Signup();
if ($model->load(Yii::$app->getRequest()->post())) {
Yii::$app->authManager->assign($userRole, Yii::$app->user->getId()); //здесь роль user должна записываться
if ($user = $model->signup()) {
return $this->goHome();
}
}
при попытке за автором назначить разрешение(доступ) по коду
Код: Выделить всё
public function actionRole() {
/*
$admin = Yii::$app->authManager->createRole('admin');
$admin->description = 'Администратор';
Yii::$app->authManager->add($admin);
$user = Yii::$app->authManager->createRole('user');
$user->description = 'Пользователь';
Yii::$app->authManager->add($user);
*//*
$permit = Yii::$app->authManager->createPermission('canAdmin');
$permit->description = 'Право на вход в админку';
Yii::$app->authManager->add($permit);
*/
$role_a = Yii::$app->authManager->getRole('admin');
$role_u = Yii::$app->authManager->getRole('user');
$permit = Yii::$app->authManager->getPermission('canAdmin');
Yii::$app->authManager->addChild($role_a, $permit);
Yii::$app->authManager->addChild($role_u, $permit);
return 123;