You are here

function openid_connect_form_user_login_form_alter in OpenID Connect / OAuth client 2.x

Same name and namespace in other branches
  1. 8 openid_connect.module \openid_connect_form_user_login_form_alter()

Implements hook_form_FORM_ID_alter() for user_login_form.

File

./openid_connect.module, line 160
Hook implementations of the OpenID Connect module.

Code

function openid_connect_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $user_login_display = \Drupal::config('openid_connect.settings')
    ->get('user_login_display');
  if ($user_login_display != 'hidden') {
    $openid_form = \Drupal::formBuilder()
      ->getForm('Drupal\\openid_connect\\Form\\OpenIDConnectLoginForm');
    switch ($user_login_display) {
      case 'above':
        $form['#prefix'] = \Drupal::service('renderer')
          ->render($openid_form);
        break;
      case 'below':
        $form['#suffix'] = \Drupal::service('renderer')
          ->render($openid_form);
        break;
      case 'replace':

        // Do nothing in case the query contains the 'showcore' parameter.
        $query = \Drupal::request()->query;
        if (!$query
          ->has('showcore')) {

          // Replace the user login form with the IDP login button.
          $form = $openid_form;
        }
        $form['#cache']['contexts'][] = 'url.query_args:showcore';
        break;
    }
  }
}