Files
breadcrumb-the-shire/pages/auth/register().php

47 lines
1.7 KiB
PHP

<?php
use MintyPHP\Http\SessionStoreInterface;
use MintyPHP\Router;
use MintyPHP\Service\Auth\AuthServicesFactory;
use MintyPHP\Service\User\UserServicesFactory;
use MintyPHP\Support\Flash;
$sessionStore = app(SessionStoreInterface::class);
$request = requestInput();
$error = false;
if (!allowRegistration()) {
Flash::error(t('Registration is currently disabled'), 'login', 'registration_disabled');
Router::redirect('login');
}
if ($request->hasBody('email')) {
$authService = (app(AuthServicesFactory::class))->createAuthService();
$firstName = $request->bodyString('first_name');
$lastName = $request->bodyString('last_name');
$email = $request->bodyString('email');
$password = (string) $request->body('password', '');
$password2 = (string) $request->body('password2', '');
$result = $authService->register([
'first_name' => $firstName,
'last_name' => $lastName,
'email' => $email,
'password' => $password,
'password2' => $password2,
]);
if (!($result['ok'] ?? false)) {
$error = $result['error'] ?? t('User can not be registered');
} else {
// Store email in session for verify-email page
$sessionStore->set('email_verification_email', $result['email'] ?? $email);
Flash::success(t('Registration successful! Please check your email for the verification code.'), 'verify-email', 'registration_success');
Router::redirect('verify-email');
}
}
$userPasswordPolicyService = (app(UserServicesFactory::class))->createUserPasswordPolicyService();
$passwordHints = $userPasswordPolicyService->hints();
$passwordMinLength = $userPasswordPolicyService->minLength();