From 74a524ded12c6527745957ac219e1ca34828aa6c Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Fri, 10 Apr 2026 13:37:26 +0200 Subject: switch routing to attributes --- src/Controllers/LoginController.php | 151 ------------------------------------ 1 file changed, 151 deletions(-) delete mode 100644 src/Controllers/LoginController.php (limited to 'src/Controllers/LoginController.php') diff --git a/src/Controllers/LoginController.php b/src/Controllers/LoginController.php deleted file mode 100644 index f9576fb..0000000 --- a/src/Controllers/LoginController.php +++ /dev/null @@ -1,151 +0,0 @@ -getContent(), true); - RequestValidator::validateJson(); - - // validate login type - $loginType = null; - try { - $loginType = LoginType::from($body["type"]); - } catch (\ValueError $error) { - throw new UnknownError("Bad login type.", Response::HTTP_BAD_REQUEST); - } - - // get user id - $userId = Parser::parseUser($body["identifier"]["user"]); - if (empty($userId["server"])) { - #$userId = "@$userId[username]:$_ENV[DOMAIN]"; - $userId = "@$userId[username]:localhost"; - } else { - $userId = "@$userId[username]:$userId[server]"; - } - - #if ($loginType == LoginType::PASSWORD) {} - - $user = User::fetchWithPassword($userId, $body["password"]); - - if (! $user) { - throw new AppException(ErrorCode::FORBIDDEN, "Invalid credentials", Response::HTTP_FORBIDDEN); - } - - $deviceId = $body["device_id"] ?? ""; - - $device = null; - $tokens = null; - - // create new device with tokens - if (empty($deviceId)) { - $device = Device::new( - $user->getId(), - initialDisplayName: $body["initial_device_display_name"] ?? "", - ); - $device->insert(); - - $tokens = Tokens::new($userId, $device->getId()); - $tokens->insert(); - } else { // fetch existing device and tokens - $device = $user->fetchDevice($deviceId); - $tokens = Tokens::fetch($userId, $device->getId()); - - if (empty($tokens)) { - throw new AppException( - ErrorCode::UNKNOWN_TOKEN, - "Soft logged out", - Response::HTTP_UNAUTHORIZED, - ["soft_logout" => true], - ); - } - } - - return new JsonResponse(new ClientLoginPostResponse( - accessToken: $tokens->getAccessToken(), - deviceId:$device->getId(), - userId: $user->getId(), - expiresInMilliseconds: $tokens->getExpiresIn(), - refreshToken: $tokens->getRefreshToken(), - )); - } - - /** - * POST /_matrix/client/v3/register - */ - public function register(Request $request): Response - { - $body = json_decode($request->getContent(), true); - RequestValidator::validateJson(); - - // validate kind - $kind = null; - try { - $kind = UserRegistrationKind::from($request->query->get("kind") ?? "user"); - } catch (\ValueError $error) { - throw new UnknownError("Bad registration kind.", Response::HTTP_BAD_REQUEST); - } - - $username = $body["username"]; - $userId = "@$username:$_ENV[DOMAIN]"; - - Database::getInstance()->query("insert into users (id, password) values (:id, :password)", [ - "id" => $userId, - "password" => $body["password"], - ]); - - $device_id = $body["device_id"] ?? ""; - $initialDeviceDisplayName = $body["initial_device_display_name"] ?? ""; - - $device = Device::new($userId, $device_id, $initialDeviceDisplayName); - $device->insert(); - - $tokens = Tokens::new($userId, $device->getId()); - $tokens->insert(); - - return new JsonResponse(new ClientRegisterPostResponse( - accessToken: $tokens->getAccessToken(), - deviceId: $device->getId(), - expiresInMilliseconds: $tokens->getExpiresIn(), - refreshToken: $tokens->getRefreshToken(), - userId: $userId, - )); - } -} -- cgit v1.2.3