function miniorange_2fa_inline_registration::handle_page_one_submit in Google Authenticator / 2 Factor Authentication - 2FA 8
Same name and namespace in other branches
- 8.2 src/Form/miniorange_2fa_inline_registration.php \Drupal\miniorange_2fa\form\miniorange_2fa_inline_registration::handle_page_one_submit()
File
- src/
Form/ miniorange_2fa_inline_registration.php, line 134
Class
Namespace
Drupal\miniorange_2fa\formCode
function handle_page_one_submit(array $form, \Drupal\Core\Form\FormStateInterface $form_state) {
$email = $form['mo_auth_user_email']['#value'];
if (!\Drupal::service('email.validator')
->isValid($email)) {
// Send Status as this to show error message
$_SESSION['success_status'] = FALSE;
$_SESSION['message'] = 'The email address <b><u>' . $email . '</u></b> is not valid.';
$form_state
->setRebuild();
return $form;
}
$connection = \Drupal::database();
$query = $connection
->query("SELECT * FROM {UserAuthenticationType} where miniorange_registered_email = '{$email}'");
$result = $query
->fetchAll();
$email_used = FALSE;
if (!empty($result)) {
$email_used = TRUE;
}
if ($email_used) {
// Send Status as this to show error message
$_SESSION['success_status'] = FALSE;
$form_state
->setRebuild();
return $form;
}
$customer = new MiniorangeCustomerProfile();
$miniorange_user = new MiniorangeUser($customer
->getCustomerID(), $email, NULL, NULL, NULL);
$user_api_handler = new UsersAPIHandler($customer
->getCustomerID(), $customer
->getAPIKey());
$response = $user_api_handler
->search($miniorange_user);
if ($response->status == 'USER_FOUND' || $response->status == 'USER_NOT_FOUND') {
$challenge_response = $this
->send_otp_email_to_user($email);
if ($challenge_response->status == 'SUCCESS') {
$page = [
'page_two' => TRUE,
'page_one_values' => $form_state
->getValues(),
[
'user_search_response' => $response,
'user_challenge_response' => $challenge_response,
],
];
$form_state
->setStorage($page);
$form_state
->setRebuild();
}
else {
\Drupal::messenger()
->addMessage('An error occured while registering. Please contact your administrator.', 'error');
}
}
elseif ($response->status == 'USER_FOUND_UNDER_DIFFERENT_CUSTOMER') {
$_SESSION['success_status'] = FALSE;
$form_state
->setRebuild();
return $form;
}
else {
global $base_url;
unset($_SESSION['success_status']);
\Drupal::messenger()
->addMessage(t("'An error occurred. Please contact your administrator.' "), 'error', TRUE);
$response = new RedirectResponse($base_url . '/user/login');
$response
->send();
}
}