You are here

function bakery_user_external_login in Bakery Single Sign-On System 7.4

Same name and namespace in other branches
  1. 6.2 bakery.module \bakery_user_external_login()
  2. 6 bakery.module \bakery_user_external_login()
  3. 7.2 bakery.module \bakery_user_external_login()
  4. 7.3 bakery.module \bakery_user_external_login()

Perform standard Drupal login operations for a user object.

The user object must already be authenticated. This function verifies that the user account is not blocked/denied and then performs the login, updates the login timestamp in the database, invokes hook_user('login'), and regenerates the session.

Parameters

$account: An authenticated user object to be set as the currently logged in user.

$edit: The array of form values submitted by the user, if any. This array is passed to hook_user op login.

Return value

boolean TRUE if the login succeeds, FALSE otherwise.

1 call to bakery_user_external_login()
_bakery_taste_chocolatechip_cookie in ./bakery.module
Test identification cookie

File

./bakery.module, line 748

Code

function bakery_user_external_login($account, $edit = array()) {
  $form = drupal_get_form('user_login');
  $state['values'] = $edit;
  if (empty($state['values']['name'])) {
    $state['values']['name'] = $account->name;
  }

  // Check if user is blocked or denied by access rules.
  user_login_name_validate($form, $state, (array) $account);
  if (form_get_errors()) {

    // Invalid login.
    return FALSE;
  }

  // Valid login.
  global $user;
  $user = $account;
  bakery_user_authenticate_finalize($state['values']);
  return TRUE;
}