function user_set_authmaps

Save mappings of which external authentication module(s) authenticated a user. Maps external usernames to user ids in the users table.

Parameters

$account: A user object.

$authmaps: An associative array with a compound key and the username as the value. The key is made up of 'authname_' plus the name of the external authentication module.

See also

user_external_login_register()

3 calls to user_set_authmaps()
openid_user_insert in modules/openid/openid.module
Implements hook_user_insert().
UserAuthmapAssignmentTestCase::testAuthmapAssignment in modules/user/user.test
Test authmap assignment and retrieval.
user_external_login_register in modules/user/user.module
Helper function for authentication modules. Either logs in or registers the current user, based on username. Either way, the global $user object is populated and login tasks are performed.

File

modules/user/user.module, line 2091

Code

function user_set_authmaps($account, $authmaps) {
    foreach ($authmaps as $key => $value) {
        $module = explode('_', $key, 2);
        if ($value) {
            db_merge('authmap')->key(array(
                'uid' => $account->uid,
                'module' => $module[1],
            ))
                ->fields(array(
                'authname' => $value,
            ))
                ->execute();
        }
        else {
            db_delete('authmap')->condition('uid', $account->uid)
                ->condition('module', $module[1])
                ->execute();
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.