Esempio n. 1
0
 /**
  * Fill permissions from config
  */
 protected function fillPermissions()
 {
     $this->authManager->removeAllPermissions();
     $this->authManager->removeAllRules();
     foreach ($this->getConfig('permissions') as $permissionConfig) {
         $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);
         }
     }
 }