You are here

public function miniorange_2fa_inline_registration::buildForm in Google Authenticator / 2 Factor Authentication - 2FA 8.2

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

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides FormInterface::buildForm

File

src/Form/miniorange_2fa_inline_registration.php, line 31
Page 1: Select Email address. Page 2: Verify OTP. Page 3: Select Auth Method. Page 4: Configure Auth Method. Page 5: Configure KBA.

Class

miniorange_2fa_inline_registration
@file Page 1: Select Email address. Page 2: Verify OTP. Page 3: Select Auth Method. Page 4: Configure Auth Method. Page 5: Configure KBA.

Namespace

Drupal\miniorange_2fa\form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $form['markup_library'] = array(
    '#attached' => array(
      'library' => array(
        "miniorange_2fa/miniorange_2fa.admin",
        "miniorange_2fa/miniorange_2fa.license",
      ),
    ),
  );
  $session = MoAuthUtilities::getSession();
  $moMfaSession = $session
    ->get("mo_auth", null);
  if (is_null($moMfaSession) || !isset($moMfaSession['status']) || !isset($moMfaSession['uid']) || $moMfaSession['status'] !== '1ST_FACTOR_AUTHENTICATED') {
    return $form;
  }
  if (!isset($_SESSION['success_status'])) {
    $_SESSION['success_status'] = TRUE;
  }
  $url_parts = MoAuthUtilities::mo_auth_get_url_parts();
  end($url_parts);
  $user_id = prev($url_parts);
  if ($moMfaSession['uid'] != $user_id) {
    return $form;
  }
  $form_state->uid = $user_id;
  $utilities = new MoAuthUtilities();
  $custom_attribute = $utilities::get_users_custom_attribute($user_id);
  $account = User::load($user_id);
  $mo2FAResetRequest = isset($_GET['mo2faresetrequest']);
  $storage = $form_state
    ->getStorage();
  if (empty($custom_attribute[0]->miniorange_registered_email) || !empty($custom_attribute[0]->miniorange_registered_email) && $mo2FAResetRequest && \Drupal::currentUser()
    ->isAuthenticated()) {

    /** Display page 5 if $storage['page_five'] is set */
    if (isset($storage['page_five'])) {
      return $this
        ->mo_auth_inline_registration_page_five($form, $form_state);
    }
    elseif (isset($storage['page_otp_validate'])) {
      return $this
        ->mo_auth_inline_registration_page_four_otp_validate($form, $form_state, $_SESSION['success_status'], $_SESSION['message']);
    }
    elseif (isset($storage['page_four'])) {
      return $this
        ->mo_auth_inline_registration_page_four($form, $form_state, $_SESSION['success_status'], $_SESSION['message']);
    }
    elseif (isset($storage['page_three']) || !empty($custom_attribute[0]->miniorange_registered_email) && $mo2FAResetRequest && \Drupal::currentUser()
      ->isAuthenticated()) {
      return $this
        ->mo_auth_inline_registration_page_three($form, $form_state, $mo2FAResetRequest);
    }
    elseif (isset($storage['page_two'])) {
      return $this
        ->mo_auth_inline_registration_page_two($form, $form_state, $_SESSION['success_status']);
    }
    else {
      return $this
        ->mo_auth_inline_registration_page_one($form, $form_state, $_SESSION['success_status'], $account
        ->getEmail());
    }
  }
}