/** * Initial RBAC action * @param integer $id Superadmin ID */ public function actionInit($id = null) { $auth = new PhpManager(); $auth->init(); $auth->removeAll(); //удаляем старые данные // Rules $groupRule = new GroupRule(); $auth->add($groupRule); // Roles $user = $auth->createRole('user'); $user->description = 'User'; $user->ruleName = $groupRule->name; $auth->add($user); $moderator = $auth->createRole('moderator'); $moderator->description = 'Moderator'; $moderator->ruleName = $groupRule->name; $auth->add($moderator); $auth->addChild($moderator, $user); $admin = $auth->createRole('admin'); $admin->description = 'Admin'; $admin->ruleName = $groupRule->name; $auth->add($admin); $auth->addChild($admin, $moderator); // $auth->assign($admin, 1); }
/** * @return bool|string */ public function addChild() { $item = $this->getItem($this->name, $this->type); list($childname, $childtype) = explode('_t', $this->new_child); $child = $this->getItem($childname, $childtype); try { $this->_authMan->addChild($item, $child); // sleep(3); //necessary sleep time - wait while update auth file return true; } catch (\yii\base\InvalidCallException $e) { return RbacModule::t('simplerbac', 'Can`t inherit from this item'); } }