function shib_auth_init in Shibboleth Authentication 6.2
Same name and namespace in other branches
- 5.3 shib_auth.module \shib_auth_init()
- 5.2 shib_auth.module \shib_auth_init()
- 6.4 shib_auth.module \shib_auth_init()
- 6 shib_auth.module \shib_auth_init()
- 6.3 shib_auth.module \shib_auth_init()
- 7.4 shib_auth.module \shib_auth_init()
Create a new user based on informations from the Shibboleth handler if it's necessary or log in.
File
- ./
shib_auth.module, line 23
Code
function shib_auth_init() {
global $user;
$uname = $_SERVER[variable_get('shib_auth_username_variable', 'REMOTE_USER')];
$umail = $_SERVER[variable_get('shib_auth_username_email', 'HTTP_SHIB_MAIL')];
// If
// - The user isn't logged in
// - There is Shibboleth authentication in the background
// - The settings are fine and there has been a valid username setted up
// - The settings are fine and there has been a valid user email address setted up
if (!$user->uid && ($_SERVER['HTTP_SHIB_IDENTITY_PROVIDER'] || $_SERVER['Shib-Identity-Provider'])) {
if ($uname && $umail) {
user_external_login_register($uname, "shib_auth");
$account = user_save($user, array(
'mail' => $umail,
));
// Terminate if an error occured during user_save().
if (!$account) {
drupal_set_message(t("Error saving user account."), 'error');
return;
}
$user = $account;
}
else {
drupal_set_message(t("Username or e-mail address is missing. Maybe the Shibboleth configuration is not perfect."), "error");
}
}
//var_dump($_SERVER);
//die();
}