Проблема с внешними ключами

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
Krybik
Сообщения: 2
Зарегистрирован: 2017.06.03, 13:05

Проблема с внешними ключами

Сообщение Krybik »

Доброго времени суток.
Пытаюсь создать рбак роли и разрешения.

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

 public function actionInit()
    {
        $auth = Yii::$app->authManager;

        $auth->removeAll();

        $user = $auth->createRole('user');
        $programmer = $auth->createRole('programmer');
        $operator = $auth->createRole('operator');
        $admin = $auth->createRole('admin');
        
        $useProfile = $auth->createPermission('useProfile');
        $useAdmin = $auth->createPermission('useAdmin');
        $showModule = $auth->createPermission('showModule');
        $showClients = $auth->createPermission('showClients');
        //дескрипшены удалены сознательно

        $auth->add($useProfile);
        $auth->add($useAdmin);
        $auth->add($showModule);
        $auth->add($showClients);

        $auth->addChild($user, $useProfile);
        $auth->addChild($programmer, $user);
        $auth->addChild($programmer, $useAdmin);
        $auth->addChild($programmer, $showModule);
        $auth->addChild($operator, $programmer);
        $auth->addChild($operator, $showClients);
        $auth->addChild($admin, $operator);
        $auth->assign($admin, 1);
    }
запускаю из консоли yii rbac/init и получаю исключение

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

Exception 'yii\db\IntegrityException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign
 key constraint fails (`parser`.`auth_item_child`, CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELE
TE CASCADE ON UPDATE CASCADE)
The SQL being executed was: INSERT INTO `auth_item_child` (`parent`, `child`) VALUES ('user', 'useProfile')'
in F:\OpenServer\domains\yii2-app-advanced\vendor\yiisoft\yii2\db\Schema.php:636
Error Info:
Array
(
    [0] => 23000
    [1] => 1452
    [2] => Cannot add or update a child row: a foreign key constraint fails (`parser`.`auth_item_child`, CONSTRAINT `auth_item_child_ibfk_1` FOREIGN
KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE)
)
Что делаю неправильно?
Не важно откуда растут руки, если они золотые.
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Проблема с внешними ключами

Сообщение futbolim »

После
$user = $auth->createRole('user');
где
$auth->add($user);
перед
$auth->addChild($user, $useProfile);
?
Krybik
Сообщения: 2
Зарегистрирован: 2017.06.03, 13:05

Re: Проблема с внешними ключами

Сообщение Krybik »

Спасибо, я поторопился с созданием темы.
Не важно откуда растут руки, если они золотые.
Ответить