getRule() public method

Returns the rule of the specified name.
public getRule ( string $name ) : null | Rule
$name string the rule name
return null | Rule the rule object, or null if the specified name does not correspond to a rule.
 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]);
     }
 }
Esempio n. 3
0
 /**
  * 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]));
         }
     }
 }