Hi,
I am not sure it is bug or not. I am using currently Drupal 5.6 & i want to upgrade my website to Drupal 5.10. I have third party Verification login system (CAS system). i upgraded to Drupal 5.10, Existing user can't login, but if i create newer one they logged in. then i use "Request New Password" , i got one-time login link, due to this i (admin) could able to logged in. after that i manually edit account of one user & submit, that particular user could able to looged -in , means if i edit any user account , he/she able to logged in. i go through Drupal 5.10 core user module & check user.module & i got something strange, & should be noticed...
In drupal 5.10 User module
// Try each external authentication source in series. Register user if
// successful.
else {
foreach (module_implements('auth') as $module) {
if (module_invoke($module, 'auth', $name, $pass, $server)) {
if ($server) {
$name .= '@'. $server;
}
$registered_user = user_load(array('name' => $name));
if (!$registered_user->uid) { // Register this new user.
$userinfo = array(
'name' => $name,
'pass' => user_password(),
'init' => $name,
'status' => 1,
'access' => time(),
);
if ($server) {
$userinfo["authname_$module"] = $name;
}
$user = user_save('', $userinfo);
watchdog('user', t('New external user: %user using module %module.', array('%user' => $name, '%module' => $module)), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
break;
}
}
}
}
return $user;
}
I changed to
// Try each external authentication source in series. Register user if
// successful.
else {
foreach (module_implements('auth') as $module) {
if (module_invoke($module, 'auth', $name, $pass, $server)) {
if ($server) {
$name .= '@'. $server;
}
$user = user_load(array('name' => $name));
if (!$user->uid) { // Register this new user.
$userinfo = array(
'name' => $name,
'pass' => user_password(),
'init' => $name,
'status' => 1,
'access' => time(),
);
if ($server) {
$userinfo["authname_$module"] = $name;
}
$user = user_save('', $userinfo);
watchdog('user', t('New external user: %user using module %module.', array('%user' => $name, '%module' => $module)), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
break;
}
}
}
}
return $user;
}
i think $registered_user should be $user, i user core module using $user as global variable.
Kamlesh Patidar
Comments
Comment #1
kamleshpatidar commentedComment #2
drummI think this bug will be solved with http://drupal.org/node/283026.
Comment #3
kamleshpatidar commented