File
- modules/user.module, line 863
- Enables the user registration and login system.
Code
function user_authenticate($name, $pass) {
global $user;
$user = user_load(array('name' => $name, 'pass' => $pass, 'status' => 1));
if ($server = strrchr($name, '@')) {
$name = substr($name, 0, strlen($name) - strlen($server));
$server = substr($server, 1);
}
if (!$user->uid && $server && $result = user_get_authmaps("$name@$server")) {
if (module_invoke(key($result), 'auth', $name, $pass, $server)) {
$user = user_external_load("$name@$server");
watchdog('user', t('External load by %user using module %module.', array('%user' => theme('placeholder', $name . '@' . $server), '%module' => theme('placeholder', key($result)))));
}
else {
$error = t('Invalid password for %s.', array('%s' => theme('placeholder', $name . '@' . $server)));
}
}
else if (!$user->uid && $server) {
foreach (module_list() as $module) {
if (module_hook($module, 'auth')) {
if (module_invoke($module, 'auth', $name, $pass, $server)) {
if (variable_get('user_register', 1) == 1) {
$account = user_load(array('name' => "$name@$server"));
if (!$account->uid) { $user = user_save('', array('name' => "$name@$server", 'pass' => user_password(), 'init' => "$name@$server", 'status' => 1, "authname_$module" => "$name@$server", 'roles' => array(_user_authenticated_id())));
watchdog('user', t('New external user: %user using module %module.', array('%user' => theme('placeholder', $name . '@' . $server), '%module' => theme('placeholder', $module))), WATCHDOG_NOTICE, l(t('edit'), 'user/' . $user->uid . '/edit'));
break;
}
}
}
}
}
}
return $user;
}
Login or
register to post comments