Ejemplo n.º 1
0
 /**
  * @Authorize "Admin"
  */
 public function postChangeRole(int $userId, AdminChangeRoleBindingModel $model) : View
 {
     try {
         if (!$model->isValid()) {
             $viewModel = new \Framework\Areas\Admin\ViewModels\Users\ChangeRoleViewModel();
             $viewModel->errorsList = $model->getErrorsList();
             $viewModel->error = true;
             $user = \Framework\Core\Identity::getUserInformation($userId);
             $viewModel->userId = $user['id'];
             $viewModel->username = $user['username'];
             $viewModel->currentRoleId = $user['userrole_id'];
             foreach ($this->db->FindAll(\Framework\Config\Config::ROLE_CLASS) as $role) {
                 $model->roles[] = array("id" => $role->id, "name" => $role->role);
             }
             return new View('\\Users\\getChangeRole', $viewModel);
         }
         $user = $this->db->FindFirst(\Framework\Config\Config::USER_CLASS, "id ='{$userId}'");
         if ($user == false) {
             throw new \Exception("User #{$userId} does not exist");
         }
         \Framework\Core\Identity::changeUserRole($user->username, $model->role);
         $viewModel = new \Framework\Areas\Admin\ViewModels\Users\ChangeRoleViewModel();
         $viewModel->success = true;
         $viewModel->successList[] = "User role successfully changed";
         $viewModel->userId = $user->id;
         $viewModel->username = $user->username;
         $viewModel->currentRoleId = \Framework\Core\Identity::getRoleId($model->role);
         foreach ($this->db->FindAll(\Framework\Config\Config::ROLE_CLASS) as $role) {
             $viewModel->roles[] = array("id" => $role->id, "name" => $role->role);
         }
         return new View('\\Users\\getChangeRole', $viewModel);
     } catch (\Exception $e) {
         $viewModel = new \Framework\Areas\Admin\ViewModels\Users\ChangeRoleViewModel();
         $viewModel->errorsList = $model->getErrorsList();
         $viewModel->errorsList[] = $e->getMessage();
         $viewModel->error = true;
         $user = \Framework\Core\Identity::getUserInformation($userId);
         $viewModel->userId = $user['id'];
         $viewModel->username = $user['username'];
         $viewModel->currentRoleId = $user['userrole_id'];
         foreach ($this->db->FindAll(\Framework\Config\Config::ROLE_CLASS) as $role) {
             $model->roles[] = array("id" => $role->id, "name" => $role->role);
         }
         return new View('\\Users\\getChangeRole', $viewModel);
     }
 }