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 removeUser(Request $request)
 {
     $userId = $request->request->get('userId');
     if (!empty($userId)) {
         if (User::deleteByUserId($userId)) {
             UserRole::deleteByUserId($userId);
             Sharing::deleteByUserId($userId);
             return $this->success();
         }
     }
     $this->abort(500, 'error.cannotRemoveUser');
 }
 public function loadUserByUsername($username)
 {
     if (DEBUG && $username === DEBUG_USERNAME) {
         $user = new User(0, $username, null, null, time(), time(), array('ROLE_ADMIN'));
         $user->setRawPassword(DEBUG_PASSWORD);
     } else {
         $user = User::loadByUsername($username);
     }
     if ($user === null) {
         throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
     }
     return $user;
 }