public function testRemoveRule() { $this->prepareData(); $this->auth->remove($this->auth->getRule('isAuthor')); $rules = $this->auth->getRules(); $this->assertEmpty($rules); }
/** * Create permissions. */ protected function createPermissions() { $permissions = ArrayHelper::getValue($this->rbac, 'permissions'); if (!$permissions) { return; } $this->_permissions = []; $children = []; foreach ($permissions as $name => $data) { $permission = $this->_auth->createPermission($name); if (is_string($data)) { $permission->description = $data; } else { $permission->description = ArrayHelper::getValue($data, 'description', ''); if ($ruleClass = ArrayHelper::getValue($data, 'rule')) { $rule = Yii::createObject($ruleClass); if (!$this->_auth->getRule($rule->name)) { $this->_auth->add($rule); } $permission->ruleName = $rule->name; } $children[$name] = ArrayHelper::getValue($data, 'child'); } $this->_auth->add($permission); $this->_permissions[$name] = $permission; } foreach ($children as $permName => $childName) { $this->_auth->addChild($this->_permissions[$permName], $this->_permissions[$childName]); } }
/** * Check for rule */ public function checkRule() { $name = $this->ruleName; if (!$this->manager->getRule($name)) { try { $rule = Yii::createObject($name); if ($rule instanceof Rule) { $rule->name = $name; $this->manager->add($rule); } else { $this->addError('ruleName', Yii::t('yii2mod.rbac', 'Invalid rule "{value}"', ['value' => $name])); } } catch (\Exception $exc) { $this->addError('ruleName', Yii::t('yii2mod.rbac', 'Rule "{value}" does not exists', ['value' => $name])); } } }