/** * {@inheritdoc} */ public function __invoke(Request $request, Response $response, callable $out = null) { try { $this->assertAdminAndSudo($request); } catch (Exception $e) { if ($request->getMethod() === 'POST') { $response = $this->logInController->handle($request); if ($response->getStatusCode() === 200) { return $response->withStatus(302)->withHeader('location', app('Flarum\\Admin\\UrlGenerator')->toRoute('index')); } } return new HtmlResponse($this->view->make('flarum.admin::login')->with('token', $request->getAttribute('session')->get('csrf_token'))->render()); } return $out ? $out($request, $response) : $response; }