You are here

public function MoAuthLoginSettings::submitForm in Google Authenticator / 2 Factor Authentication - 2FA 8.2

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

Form submission handler.

Parameters

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

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

Overrides FormInterface::submitForm

File

src/Form/MoAuthLoginSettings.php, line 643
Contains support form for miniOrange 2FA Login Module.

Class

MoAuthLoginSettings
Showing LoginSetting form info.

Namespace

Drupal\miniorange_2fa\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $utilities = new MoAuthUtilities();
  $form_values = $form_state
    ->getValues();
  $phone_number_field_machine_name = $utilities
    ->miniOrange_set_get_configurations([
    'phone_number_field_machine_name',
  ], 'GET')['phone_number_field_machine_name'];
  if (is_null($phone_number_field_machine_name)) {
    $phone_number_field_machine_name = trim($form_values['auto_fetch_phone_number_field_name']) == '' ? trim($form_values['login_with_phone_number_field_machine_name']) : trim($form_values['auto_fetch_phone_number_field_name']);
  }
  else {
    if ($phone_number_field_machine_name == trim($form_values['auto_fetch_phone_number_field_name'])) {
      $phone_number_field_machine_name = trim($form_values['login_with_phone_number_field_machine_name']);
    }
    else {
      $phone_number_field_machine_name = trim($form_values['auto_fetch_phone_number_field_name']);
    }
  }
  if (trim($phone_number_field_machine_name) !== '') {
    $user = User::load(\Drupal::currentUser()
      ->id());
    try {
      $user
        ->get($phone_number_field_machine_name)->value;
    } catch (\Exception $e) {
      \Drupal::messenger()
        ->addMessage(t('The field ( ' . $phone_number_field_machine_name . ' ) does not exist. Please enter correct machine name.'), 'error');
      return;
    }
  }

  /**
   * @DO NOT REMOVE THE SPACES BETWEEN FOLLOWING LINES
   */
  $variables_and_values = array(
    'mo_auth_enable_two_factor' => $form_values['mo_auth_enable_two_factor'] === 1,
    'mo_auth_enforce_inline_registration' => $form_values['mo_auth_enforce_inline_registration'] === 1,
    'mo_auth_2fa_allow_reconfigure_2fa' => $form_values['mo_auth_2fa_allow_reconfigure_2fa'],
    'mo_auth_2fa_kba_questions' => $form_values['mo_auth_2fa_kba_questions'],
    'mo_auth_enable_allowed_2fa_methods' => $form_values['mo_auth_enable_2fa_methods_for_inline'],
    'mo_auth_selected_2fa_methods' => self::getSelected2faMethods($form_values),
    'mo_auth_enable_role_based_2fa' => $form_values['mo_auth_two_factor_enable_role_based_2fa'] === 1,
    'mo_auth_role_based_2fa_roles' => self::getRoleBased2faRoles($form_values),
    'mo_auth_enable_domain_based_2fa' => $form_values['mo_auth_two_factor_invoke_2fa_depending_upon_domain'] === 1,
    'mo_auth_domain_based_2fa_domains' => preg_replace('/\\s+/', '', $form_values['mo_auth_domain_based_2fa_domains']),
    'mo_2fa_domain_and_role_rule' => $form_values['mo_2fa_rule_for_domain'],
    'mo_auth_use_only_2nd_factor' => $form_values['mo_auth_two_factor_instead_password'] === 1,
    'mo_auth_enable_login_with_email' => $form_values['mo_auth_two_factor_enable_login_with_email'] === 1,
    'mo_auth_enable_login_with_phone' => $form_values['mo_auth_two_factor_enable_login_with_phone'] === 1,
    'mo_auth_override_login_labels' => $form_values['mo_auth_two_factor_override_login_labels'] === 1,
    'mo_auth_username_title' => $form_values['mo_auth_two_factor_username_title'],
    'mo_auth_username_description' => $form_values['mo_auth_two_factor_username_description'],
    'mo_auth_enable_whitelist_IPs' => $form_values['mo_auth_two_factor_invoke_2fa_depending_upon_IP'] === 1,
    'mo_auth_whitelisted_IP_address' => preg_replace('/\\s+/', '', $form_values['mo_auth_two_factor_whitelist_IP']),
    'mo_auth_enable_custom_kba_questions' => $form_values['mo_auth_enable_custom_kba_questions'] === 1,
    'mo_auth_custom_kba_set_1' => self::processKBAQuestions($form_values['mo_auth_enable_custom_kba_set_1']),
    'mo_auth_custom_kba_set_2' => self::processKBAQuestions($form_values['mo_auth_enable_custom_kba_set_2']),
    'mo_auth_redirect_user_after_login' => $form_values['mo_auth_redirect_user_after_login'],
    'mo_auth_google_auth_app_name' => urlencode($form_values['mo_auth_two_factor_google_authenticator_app_name']),
    'mo_auth_custom_organization_name' => urlencode($form_values['mo_auth_custom_organization_name']),
    'mo_auth_backdoor_login_access' => $form_values['miniorange_2fa_backdoor_textbox1'],
    'mo_auth_enable_backdoor' => $form_values['mo_auth_enable_backdoor'] === 1,
    'allow_end_users_to_decide' => $form_values['allow_end_users_to_decide'] === 1,
    'end_users_can_decide_without_rules' => $form_values['end_users_can_decide_without_rules'] === 1,
    'skip_not_allowed_for_secured_users' => $form_values['skip_not_allowed_for_secured_users'] === 1,
    'only_some_admins_can_edit_2fa_configs' => $form_values['only_some_admins_can_edit_2fa_configs'] === 1,
    'list_of_admins_who_can_edit_2fa_configs' => $form_values['list_of_admins_who_can_edit_2fa_configs'],
    'auto_fetch_phone_number' => $form_values['auto_fetch_phone_number'] === 1,
    'phone_number_field_machine_name' => trim($phone_number_field_machine_name),
    'auto_fetch_phone_number_country_code' => $form_values['auto_fetch_phone_number_country_code'],
  );
  $utilities
    ->miniOrange_set_get_configurations($variables_and_values, 'SET');
  drupal_flush_all_caches();
  \Drupal::messenger()
    ->addStatus(t("Login settings updated."));
}