function bakery_eat_stroopwafel_cookie in Bakery Single Sign-On System 6
Same name and namespace in other branches
- 6.2 bakery.module \bakery_eat_stroopwafel_cookie()
- 7.2 bakery.module \bakery_eat_stroopwafel_cookie()
Menu callback, invoked on the slave
1 string reference to 'bakery_eat_stroopwafel_cookie'
- bakery_menu in ./
bakery.module - Implementation of hook_menu().
File
- ./
bakery.module, line 568
Code
function bakery_eat_stroopwafel_cookie() {
// the session got set during validation
$stroopwafel = $_SESSION['bakery'];
unset($_SESSION['bakery']);
$init = variable_get('bakery_master', 'http://drupal.org/') . 'user/' . $stroopwafel['uid'] . '/edit';
// check if the user exists.
$account = user_load(array(
'init' => $init,
));
if (!$account) {
// user not present
$message = t('Account not found on %slave.', array(
'%slave' => variable_get('site_name', ''),
));
}
else {
$fields = array();
foreach (variable_get('bakery_supported_fields', array(
'mail' => 'mail',
'name' => 'name',
)) as $type => $value) {
if ($value) {
$fields[$type] = isset($stroopwafel[$type]) ? $stroopwafel[$type] : $account->{$type};
}
}
$status = user_save($account, $fields, $stroopwafel['category']);
if ($status === FALSE) {
watchdog('bakery', 'User update from name %name_old to %name_new, mail %mail_old to %mail_new failed.', array(
'%name_old' => $account->name,
'%name_new' => $stroopwafel['name'],
'%mail_old' => $account->mail,
'%mail_new' => $stroopwafel['mail'],
), WATCHDOG_ERROR);
$message = t('There was a problem updating your account on %slave. Please contact the administrator.', array(
'%slave' => variable_get('site_name', ''),
));
header('HTTP/1.1 409 Conflict');
}
else {
watchdog('bakery', 'user updated name %name_old to %name_new, mail %mail_old to %mail_new.', array(
'%name_old' => $account->name,
'%name_new' => $stroopwafel['name'],
'%mail_old' => $account->mail,
'%mail_new' => $stroopwafel['mail'],
));
$message = t('Successfully updated account on %slave.', array(
'%slave' => variable_get('site_name', ''),
));
}
}
module_invoke_all('exit');
print $message;
exit;
}