| 1 |
<?php |
<?php |
| 2 |
// $Id: webserver_auth.module,v 1.14 2006/03/03 05:08:46 weitzman Exp $ |
// $Id: webserver_auth.module,v 1.15 2006/03/25 05:53:56 weitzman Exp $ |
| 3 |
|
|
| 4 |
function webserver_auth_init() { |
function webserver_auth_init() { |
| 5 |
global $user, $account; |
global $user, $account; |
| 6 |
|
|
| 7 |
if ($user->uid) { |
// two ways to get $name |
| 8 |
//do nothing because user is already logged into Drupal |
if ($name != $_SERVER["REMOTE_USER"]) { |
| 9 |
|
$name = $_SERVER["REDIRECT_REMOTE_USER"]; |
| 10 |
|
} |
| 11 |
|
|
| 12 |
|
if (isset($user) && $user->id && $user->name === $name) { |
| 13 |
|
//do nothing because user is already logged into Drupal, and hasn't presented different credentials vis web server |
| 14 |
} |
} |
| 15 |
else { |
else { |
| 16 |
if ($name = $_SERVER["REMOTE_USER"] || ($name = $_SERVER["REDIRECT_REMOTE_USER"])) { |
if ($name) { |
| 17 |
// user is logged into webserver. |
// user is logged into webserver. |
| 18 |
$account->name = $name; |
$account->name = $name; |
| 19 |
//modules get to change the user bits before saving. use a global $account to do so. |
//modules get to change the user bits before saving. use a global $account to do so. |
| 29 |
if (!$user->uid) { |
if (!$user->uid) { |
| 30 |
if (variable_get("user_register", 1) == 1) { |
if (variable_get("user_register", 1) == 1) { |
| 31 |
$user_default = array("name" => $account->name, "pass" => "cyan", "init" => db_escape_string($name), "authname_webserver_auth" => $account->name, "status" => 1, "roles" => array(DRUPAL_AUTHENTICATED_RID)); |
$user_default = array("name" => $account->name, "pass" => "cyan", "init" => db_escape_string($name), "authname_webserver_auth" => $account->name, "status" => 1, "roles" => array(DRUPAL_AUTHENTICATED_RID)); |
| 32 |
// TODO - the hook_user('register') will fire but only for loaded modules. cold be a problem for sites using page cache and that hook+operation |
// TODO - the hook_user('register') will fire but only for loaded modules. could be a problem for sites using page cache and that hook+operation |
| 33 |
$user = user_save("", array_merge($user_default, (array)$account)); |
$user = user_save("", array_merge($user_default, (array)$account)); |
| 34 |
watchdog("user", "new user: $user->name (webserver_auth)", l(t("edit user"), "admin/user/edit/$user->uid")); |
watchdog("user", "new user: $user->name (webserver_auth)", l(t("edit user"), "admin/user/edit/$user->uid")); |
| 35 |
} |
} |
| 81 |
} |
} |
| 82 |
|
|
| 83 |
return $output; |
return $output; |
|
} |
|
|
|
|
|
|
|
|
?> |
|
| 84 |
|
} |