You are here

login_disable.module in Login Disable 8

Control who can log in to a Drupal site.

File

login_disable.module
View source
<?php

/**
 * @file
 * Control who can log in to a Drupal site.
 */
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\UserInterface;

/**
 * Login_disable_form_user_login_block_alter function.
 */
function login_disable_form_user_login_block_alter(&$form, FormStateInterface $form_state) {
  _login_disable_form_user_login_alter($form);
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function login_disable_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  _login_disable_form_user_login_alter($form);
}

/**
 * Login_disable_form_user_login_alter function.
 */
function _login_disable_form_user_login_alter(&$form) {
  if (\Drupal::config('login_disable.settings')
    ->get('login_disable_is_active')) {
    $key = \Drupal::config('login_disable.settings')
      ->get('login_disable_key');

    // If the key is set, block people from logging in if it was not passed as
    // an argument in the URL.
    if (!empty($key) && !array_key_exists($key, $_GET)) {
      $form['name']['#disabled'] = 'disabled';
      $form['pass']['#disabled'] = 'disabled';
      unset($form['#validate']);
      unset($form['#submit']);
      unset($form['actions']);
    }
    drupal_set_message(\Drupal::config('login_disable.settings')
      ->get('login_disable_message'), 'warning', FALSE);
  }
}

/**
 * Implements hook_user_login().
 */
function login_disable_user_login(UserInterface $account) {
  if (\Drupal::config('login_disable.settings')
    ->get('login_disable_is_active')) {

    // If user is not allowed to bypass then log them out.
    if (\Drupal::currentUser()
      ->hasPermission('bypass disabled login') == FALSE) {
      drupal_set_message(\Drupal::config('login_disable.settings')
        ->get('login_disable_message'), 'warning');
      user_logout();
    }
  }
}

Functions

Namesort descending Description
login_disable_form_user_login_block_alter Login_disable_form_user_login_block_alter function.
login_disable_form_user_login_form_alter Implements hook_form_FORM_ID_alter().
login_disable_user_login Implements hook_user_login().
_login_disable_form_user_login_alter Login_disable_form_user_login_alter function.