yii\rbac\BaseManager::update PHP Method

update() public method

public update ( $name, $object )
    public function update($name, $object)
    {
        if ($object instanceof Item) {
            if ($object->ruleName && $this->getRule($object->ruleName) === null) {
                $rule = \Yii::createObject($object->ruleName);
                $rule->name = $object->ruleName;
                $this->addRule($rule);
            }
            return $this->updateItem($name, $object);
        } elseif ($object instanceof Rule) {
            return $this->updateRule($name, $object);
        } else {
            throw new InvalidParamException('Updating unsupported object type.');
        }
    }

Usage Example

Example #1
0
 /**
  * Fill permissions from config
  */
 protected function fillPermissions()
 {
     foreach ($this->getConfig('permissions') as $permissionConfig) {
         $existingPermission = $this->authManager->getPermission($permissionConfig['name']);
         if ($existingPermission && $permissionConfig['name'] == $existingPermission->name) {
             $permission = $existingPermission;
             $permission->description = $permissionConfig['description'];
             $this->authManager->update($permissionConfig['name'], $permission);
         } else {
             $permission = $this->authManager->createPermission($permissionConfig['name']);
             $permission->description = $permissionConfig['description'];
             $this->authManager->add($permission);
         }
         if (isset($permissionConfig['rule'])) {
             /* @var $rule \yii\rbac\Rule */
             $rule = new $permissionConfig['rule']();
             $existingRule = $this->authManager->getRule($rule->name);
             if (!$permission->ruleName && !$existingRule) {
                 $this->authManager->add($rule);
             }
             $permission->ruleName = $rule->name;
             $this->authManager->update($permissionConfig['name'], $permission);
         }
     }
 }
All Usage Examples Of yii\rbac\BaseManager::update