You are here

function _openid_connect_windows_aad_form_submit_refresh_routes in OpenID Connect Microsoft Azure Active Directory client 8

Same name and namespace in other branches
  1. 2.0.x openid_connect_windows_aad.module \_openid_connect_windows_aad_form_submit_refresh_routes()

Implements hook_form_FORM_ID_alter().

1 string reference to '_openid_connect_windows_aad_form_submit_refresh_routes'
openid_connect_windows_aad_form_openid_connect_admin_settings_alter in ./openid_connect_windows_aad.module
Implements hook_admin_settings_alter().

File

./openid_connect_windows_aad.module, line 23
OpenID Connect Windows AAD module file.

Code

function _openid_connect_windows_aad_form_submit_refresh_routes(&$form, FormState $form_state) {
  $assume_disabled = FALSE;
  try {
    $configuration = \Drupal::config('openid_connect.settings.windows_aad');
    $settings = $configuration
      ->get('settings');
    $aad_enabled = (bool) $configuration
      ->get('enabled');
    $sso_enabled = isset($settings['enable_single_sign_out']) && $settings['enable_single_sign_out'];
  } catch (Exception $exception) {

    // Not likely to happen but assume windows_aad is not enabled if it does.
    $assume_disabled = TRUE;
  }

  // Get clients' enabled status.
  $aad_checked = (bool) $form_state
    ->getValue(array(
    'clients_enabled',
    'windows_aad',
  ));
  $sso_checked = (bool) $form_state
    ->getValue(array(
    'clients',
    'windows_aad',
    'settings',
    'enable_single_sign_out',
  ));

  // Rebuild routes since we may override the user.logout route for single
  // sign off.
  if (!$assume_disabled && ($aad_enabled !== $aad_checked || $sso_enabled !== $sso_checked) || $assume_disabled && (isset($aad_enabled) && $aad_enabled !== $aad_checked || $aad_checked)) {
    \Drupal::logger('openid_connect_windows_aad')
      ->debug('rebuild routes');
    \Drupal::service('router.builder')
      ->setRebuildNeeded();
  }
}