/** * Create user object * * @return \Closure */ private function _createUserObject() { return function (Request $request, Application $app) { $user_data = null; if (in_array('user', $app->keys())) { $user_data = $app['user']; } /** @var User $user */ $user = new User(); if ($request->attributes->has('user_id')) { $user->setUserId($request->attributes->get('user_id')); } if ($user_data) { $user->setEmail($user_data['email']); $user->setFirstname($user_data['firstname']); $user->setLastname($user_data['lastname']); $user->setPassword(PasswordHash::hash($user_data['password'])); } $app['user'] = $user; }; }
/** * Login user * * @param Request $request * @param Application $app * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function loginUser(Request $request, Application $app) { try { /** @var User_Database $user_db */ $user_db = User_Database::getInstance($app, $request); $result_user = $user_db->loginUser(); /** @var User $user */ $user = new User($result_user['user_id']); $user->setEmail($result_user['email']); $user->setFirstname($result_user['firstname']); $user->setLastname($result_user['lastname']); return ResponseBuilder::createSuccessResponse($app, $user->toArray()); } catch (WrongPasswordException $e) { return ResponseBuilder::createErrorResponse($app, ResponseBuilder::STATUS_TYPE_PASSWORD_INVALID, "User-ID und Passwort stimmmen nicht überein.", Response::HTTP_FORBIDDEN); } }