You are here

function ga_login_user_login_validate in Google Authenticator login 6

Same name and namespace in other branches
  1. 7 ga_login.module \ga_login_user_login_validate()

Validate callback for login form.

Checks if the ga_login code is needed and valid.

See also

ga_login_form_alter()

1 string reference to 'ga_login_user_login_validate'
ga_login_form_alter in ./ga_login.module

File

./ga_login.module, line 183

Code

function ga_login_user_login_validate($form, &$form_state) {
  $name = $form_state['values']['name'];
  $code = $form_state['values']['gacode'];
  $account = user_load(array(
    'name' => $name,
  ));
  $form_state['uid'] = $account->uid;
  if (_ga_login_force_tfa($account) || !empty($code) || $account->uid == 1 && variable_get('ga_login_always_for_uid1', 0)) {
    module_load_include('php', 'ga_login', 'ga_login.class');
    $ga = new ga_loginGA(variable_get('ga_login_totp_skew', 10), variable_get('ga_login_hotp_skew', 10));
    $username = _ga_login_username($account);
    if ($ga
      ->hasToken($username)) {
      $keyok = $ga
        ->authenticateUser($username, $code);
      if (!$keyok) {
        form_set_error('gacode', t("Your code isn't valid."));
        $form_state['ga_code'] = 'invalid';
      }
      else {
        $form_state['ga_code'] = 'valid';
      }
    }
  }
}