You are here

function opigno_dashboard_form_user_login_form_alter in Opigno dashboard 8

Implements hook_form_FORM_ID_alter().

File

./opigno_dashboard.module, line 158
Contains opigno_dashboard.module.

Code

function opigno_dashboard_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $route = \Drupal::routeMatch();
  if (strpos($route
    ->getRouteName(), 'rest.') !== FALSE) {
    return;
  }

  // Restrict by route for avoid issues with REST ect.
  if ($route
    ->getRouteName() == 'user.login') {

    // Redirect user to the previous page.
    $previous_url = \Drupal::request()->query
      ->get('prev_path');
    if (!empty($previous_url)) {

      // Save redirect url to user private_tempstore in the first form loading.
      $tempstore = \Drupal::service('user.private_tempstore')
        ->get('opigno_dashboard');
      $tempstore
        ->set('prev_path', $previous_url);
    }
    else {

      // Drupal will redirect to /user/login page before submit and rebuild form.
      $tempstore = \Drupal::service('user.private_tempstore')
        ->get('opigno_dashboard');
      $prev_path = $tempstore
        ->get('prev_path');
      if (!empty($prev_path)) {
        $form_state
          ->set('prev_path', $prev_path);
      }
    }
  }
}