protected function saveAccount(Request $request)
 {
     global $app;
     $user = $app['security']->getToken()->getUser();
     $username = $request->request->get('username');
     $currentPassword = $request->request->get('current_password');
     if (empty($username) || empty($currentPassword)) {
         $this->addNotification('error', 'error.usernameOrPasswordEmpty');
         return $this->redirect('editAccount');
     }
     if ($app['security.encoder.digest']->encodePassword($currentPassword, $user->getSalt()) !== $user->getPassword()) {
         $this->addNotification('error', 'error.passwordInvalid');
         return $this->redirect('editAccount');
     }
     if ($user->getUsername() !== $username) {
         if (User::exists($username)) {
             $this->addNotification('error', 'error.usernameAlreadyUsed');
             return $this->redirect('editAccount');
         }
         $user->setUsername($username);
     }
     $newPassword = $request->request->get('new_password');
     $passwordConfirm = $request->request->get('password_confirm');
     if (!empty($newPassword) || !empty($passwordConfirm)) {
         if ($newPassword !== $passwordConfirm) {
             $this->addNotification('error', 'error.passwordsDiffer');
             return $this->redirect('editAccount');
         }
         $user->setRawPassword($newPassword);
     }
     $user->save();
     return $this->redirect('editAccount');
 }
 protected function saveUser(Request $request)
 {
     $username = $request->request->get('username');
     $password = $request->request->get('password');
     $role = $request->request->get('role');
     if (!empty($username) && !empty($password) && !empty($role)) {
         if (User::exists($username)) {
             $this->addNotification('error', 'error.usernameAlreadyUsed');
             return $this->redirect('addUser');
         }
         if (!in_array($role, UserRole::$list)) {
             $this->abort(400, 'error.roleNotSpecified');
         }
         $user = new User(null, $username);
         $user->setRawPassword($password);
         $user->save();
         $userRole = new UserRole($user->getUserId(), $role);
         $userRole->save();
     } else {
         $this->addNotification('error', 'error.usernameOrPasswordEmpty');
         return $this->redirect('addUser');
     }
     return $this->redirect('listUsers');
 }