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'); }