You are here

function simple_pass_reset_pass_reset_submit in Simple Password Reset 8

Same name and namespace in other branches
  1. 7 simple_pass_reset.module \simple_pass_reset_pass_reset_submit()

User form submit callback.

1 string reference to 'simple_pass_reset_pass_reset_submit'
simple_pass_reset_form_user_form_alter in ./simple_pass_reset.module
Implements hook_form_FORM_ID_alter().

File

./simple_pass_reset.module, line 68
Form alters and submits for Simple password reset module.

Code

function simple_pass_reset_pass_reset_submit(&$form, FormStateInterface $form_state) {

  // Sanity check.
  if (\Drupal::currentUser()
    ->isAnonymous()) {
    $values = $form_state
      ->getValues();

    // Remove roles that were disabled in the form. Normally the User module
    // will array_filter() these out for us.  But remember_me and possibly other
    // modules have bugs that might prevent it from doing so.
    if (!empty($values['roles'])) {
      $form_state
        ->set('roles', array_filter($values['roles']));
    }

    // Load the user account afresh and finalize the login.
    // @see user_login_submit()
    $account = \Drupal::entityTypeManager()
      ->getStorage('user')
      ->load($values['uid']);
    user_login_finalize($account);
    \Drupal::logger('user')
      ->notice(t('User @name used one-time login link.', [
      '@name' => $values['name'],
    ]));
    if (empty($form_state
      ->getRedirect())) {
      $form_state
        ->setRedirect('user.page');
    }
  }
}