You are here

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

Same name and namespace in other branches
  1. 8 src/Form/configure_kba.php \Drupal\miniorange_2fa\form\configure_kba::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/configure_kba.php, line 19

Class

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',
      ),
    ),
  );
  $user = User::load(\Drupal::currentUser()
    ->id());
  $user_id = $user
    ->id();
  $utilities = new MoAuthUtilities();
  $custom_attribute = $utilities::get_users_custom_attribute($user_id);
  $user_email = $custom_attribute[0]->miniorange_registered_email;
  $customer = new MiniorangeCustomerProfile();
  $miniorange_user = new MiniorangeUser($customer
    ->getCustomerID(), $user_email, NULL, NULL, AuthenticationType::$GOOGLE_AUTHENTICATOR['code']);
  $auth_api_handler = new AuthenticationAPIHandler($customer
    ->getCustomerID(), $customer
    ->getAPIKey());
  $form['markup_top_2'] = array(
    '#markup' => '<div class="mo_2fa_table_layout_1"><div class="mo_2fa_table_layout mo_2fa_container">',
  );

  /**
   * Create container to hold form elements.
   */
  $form['mo_configure_security_questions'] = array(
    '#type' => 'fieldset',
    '#title' => t('Configure Security Questions (KBA)'),
    '#attributes' => array(
      'style' => 'padding:2% 2% 6%; margin-bottom:2%',
    ),
  );
  $form['mo_configure_security_questions']['markup_configure_kba_note'] = array(
    '#markup' => '<br><hr><br><div class="mo_2fa_highlight_background_note"><strong>' . t('You can customize the following things of the CONFIGURE SECURITY QUESTIONS (KBA) method:') . '</strong><ul><li>' . t('Customize the set of questions. ( You can add your own set of questions )') . '</li><li>' . t('Set number of questions to be asked while login/authentication') . '( <a href=" ' . MoAuthUtilities::get_mo_tab_url('SUPPORT') . ' ">' . t('Contact us') . '</a>' . t(' for more details )') . '</li><li>' . t('For customization goto') . ' <a href="' . MoAuthUtilities::get_mo_tab_url('LOGIN') . '">' . t('Login Settings') . '</a> ' . t('tab and navigate to') . '<u>' . t('CUSTOMIZE KBA QUESTIONS') . '</u>' . t('section.') . '</li></ul></div>',
  );
  $form['mo_configure_security_questions']['mo2f_kbaquestion1'] = array(
    '#type' => 'select',
    '#title' => t('1. Question :'),
    '#attributes' => array(
      'style' => 'width:70%; height:29px',
    ),
    '#options' => $utilities::mo_get_kba_questions('ONE'),
    '#prefix' => '<br>',
  );
  $form['mo_configure_security_questions']['mo2f_kbaanswer1'] = array(
    '#type' => 'textfield',
    '#title' => t('Answer:'),
    '#attributes' => array(
      'style' => 'width:70%',
      'placeholder' => t('Enter your answer'),
    ),
    '#required' => TRUE,
    '#suffix' => '</div><br>',
  );
  $form['mo_configure_security_questions']['mo2f_kbaquestion2'] = array(
    '#type' => 'select',
    '#attributes' => array(
      'style' => 'width:70%; height:29px',
    ),
    '#title' => t('2. Question :'),
    '#options' => $utilities::mo_get_kba_questions('TWO'),
  );
  $form['mo_configure_security_questions']['mo2f_kbaanswer2'] = array(
    '#type' => 'textfield',
    '#title' => t('Answer:'),
    '#attributes' => array(
      'style' => 'width:70%',
      'placeholder' => t('Enter your answer'),
    ),
    '#required' => TRUE,
    '#suffix' => '<br>',
  );
  $form['mo_configure_security_questions']['mo2f_kbaquestion3'] = array(
    '#type' => 'textfield',
    '#title' => t('3. Question:'),
    '#attributes' => array(
      'style' => 'width:70%',
      'placeholder' => t('Enter your custom question here'),
    ),
    '#required' => TRUE,
  );
  $form['mo_configure_security_questions']['mo2f_kbaanswer3'] = array(
    '#type' => 'textfield',
    '#title' => t('Answer:'),
    '#attributes' => array(
      'style' => 'width:70%',
      'placeholder' => t('Enter your answer'),
    ),
    '#required' => TRUE,
    '#suffix' => '<br><br>',
  );
  $form['mo_configure_security_questions']['submit'] = array(
    '#type' => 'submit',
    '#button_type' => 'primary',
    '#value' => t('Configure KBA'),
  );
  $form['mo_configure_security_questions']['cancel'] = array(
    '#type' => 'submit',
    '#value' => t('Cancel'),
    '#button_type' => 'danger',
    '#submit' => array(
      '\\Drupal\\miniorange_2fa\\MoAuthUtilities::mo_handle_form_cancel',
    ),
    '#limit_validation_errors' => array(),
  );
  $utilities::miniOrange_advertise_network_security($form, $form_state);
  return $form;
}