authService = $authService; $this->privilegeService = $privilegeService; $this->inputReader = $inputReader; $this->userViewProxy = $userViewProxy; $this->tokenViewProxy = $tokenViewProxy; } public function registerRoutes(\Szurubooru\Router $router) { $router->post('/api/login', [$this, 'login']); $router->put('/api/login', [$this, 'login']); } public function login() { if (isset($this->inputReader->userName) and isset($this->inputReader->password)) { $this->authService->loginFromCredentials($this->inputReader->userName, $this->inputReader->password); } elseif (isset($this->inputReader->token)) { $this->authService->loginFromToken($this->inputReader->token); } else { $this->authService->loginAnonymous(); } return [ 'token' => $this->tokenViewProxy->fromEntity($this->authService->getLoginToken()), 'user' => $this->userViewProxy->fromEntity($this->authService->getLoggedInUser()), 'privileges' => $this->privilegeService->getCurrentPrivileges(), ]; } }