getPermissionsByRole() публичный Метод

public getPermissionsByRole ( $roleName )
Пример #1
0
 /**
  * @param string $id
  *
  * @return string
  */
 public function actionView($id)
 {
     $role = $this->findModel($id);
     $authManager = new DbManager();
     $allRoles = Role::find()->asArray()->andWhere('name != :current_name', [':current_name' => $id])->all();
     $permissions = Permission::find()->andWhere(Yii::$app->getModule(\Yii::$app->user->moduleAliasName)->auth_item_table . '.name != :commonPermissionName', [':commonPermissionName' => Yii::$app->getModule(\Yii::$app->user->moduleAliasName)->commonPermissionName])->joinWith('group')->all();
     $permissionsByGroup = [];
     foreach ($permissions as $permission) {
         $permissionsByGroup[@$permission->group->name][] = $permission;
     }
     $childRoles = $authManager->getChildren($role->name);
     $currentRoutesAndPermissions = AuthHelper::separateRoutesAndPermissions($authManager->getPermissionsByRole($role->name));
     $currentPermissions = $currentRoutesAndPermissions->permissions;
     return $this->renderIsAjax('view', compact('role', 'allRoles', 'childRoles', 'currentPermissions', 'permissionsByGroup'));
 }
Пример #2
0
 /**
  * Delete permission from a role.
  * @param string $roleName role name.
  * @param string $permName permission name.
  */
 public function actionDelperm($roleName, $permName)
 {
     $role = $this->getRole($roleName);
     $permissions = $this->_auth->getPermissionsByRole($roleName);
     if (!isset($permissions[$permName])) {
         $this->stderr("Role '{$roleName}' has not permission '{$permName}'.", Console::FG_RED);
         return;
     }
     if (!($item = $this->_auth->getPermission($permName))) {
         $this->stderr("Permission '{$permName}' cannot found by auth manager.", Console::FG_RED);
         return;
     }
     $this->_auth->removeChild($role, $item);
     $this->p('Permission "{perm}" removed from role "{role}"', ['perm' => $permName, 'role' => $role->name]);
     // Transfer permissions to Administrator role.
     if ($roleName != 'Administrator') {
         $adminRole = $this->getRole('Administrator');
         $permissions = $this->_auth->getPermissionsByRole($adminRole->name);
         if (!isset($permissions[$permName])) {
             $this->_auth->addChild($adminRole, $item);
             $this->p('Permission "{perm}" transfer to Administrator.', ['perm' => $permName]);
         }
     }
 }