. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Http\Controllers\AbstractBaseController; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Site; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Show a registration page. */ class RegisterPage extends AbstractBaseController { /** * @param ServerRequestInterface $request * * @return ResponseInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { $this->checkRegistrationAllowed(); $comments = $request->getQueryParams()['comments'] ?? ''; $email = $request->getQueryParams()['email'] ?? ''; $realname = $request->getQueryParams()['realname'] ?? ''; $username = $request->getQueryParams()['username'] ?? ''; $show_caution = Site::getPreference('SHOW_REGISTER_CAUTION') === '1'; $title = I18N::translate('Request a new user account'); return $this->viewResponse('register-page', [ 'comments' => $comments, 'email' => $email, 'realname' => $realname, 'show_caution' => $show_caution, 'title' => $title, 'username' => $username, ]); } /** * Check that visitors are allowed to register on this site. * * @return void * @throws NotFoundHttpException */ private function checkRegistrationAllowed(): void { if (Site::getPreference('USE_REGISTRATION_MODULE') !== '1') { throw new NotFoundHttpException(); } } }