You are here

function miniorange_2fa_inline_registration::handle_page_otp_validate_submit in Google Authenticator / 2 Factor Authentication - 2FA 8

Same name and namespace in other branches
  1. 8.2 src/Form/miniorange_2fa_inline_registration.php \Drupal\miniorange_2fa\form\miniorange_2fa_inline_registration::handle_page_otp_validate_submit()

File

src/Form/miniorange_2fa_inline_registration.php, line 1282

Class

miniorange_2fa_inline_registration

Namespace

Drupal\miniorange_2fa\form

Code

function handle_page_otp_validate_submit(array $form, \Drupal\Core\Form\FormStateInterface $form_state) {
  $storage = $form_state
    ->getStorage();
  $input = $form_state
    ->getUserInput();
  $otp_code = $input['mo_auth_otpoversms_code'];
  $form_state
    ->setRebuild();
  $challenge_response = $storage[0]['user_challenge_response'];
  $validate_response = $this
    ->validate_otp_for_user($challenge_response->txId, $otp_code);
  if ($validate_response->status == 'SUCCESS') {
    $page = [
      'page_five' => TRUE,
      'page_otp_validate_values' => $form_state
        ->getValues(),
      'page_four_values' => $storage['page_four_values'],
      'page_three_values' => $storage['page_three_values'],
      'page_two_values' => $storage['page_two_values'],
      'page_one_values' => $storage['page_one_values'],
    ];
    $_SESSION['success_status'] = TRUE;
    $form_state
      ->setStorage($page);
    return;
  }
  elseif ($validate_response->status == 'FAILED') {

    //Retain All the values
    $page = [
      'page_otp_validate' => TRUE,
      'page_four_values' => $storage['page_four_values'],
      [
        'user_challenge_response' => $storage[0]['user_challenge_response'],
      ],
      'page_three_values' => $storage['page_three_values'],
      'page_two_values' => $storage['page_two_values'],
      'page_one_values' => $storage['page_one_values'],
    ];
    $_SESSION['message'] = 'INVALID OTP';
    $_SESSION['success_status'] = FALSE;
    $form_state
      ->setStorage($page);
    $form_state
      ->setRebuild();
    return;
  }
}