function _services_controller_execute_preserve_user_switch_anonymous in Services 7.3
As authentication methods should authenticate user themselves changing global $user variable we preserve incoming session authenticated user and his session so changes made by authentication do not interfere.
1 call to _services_controller_execute_preserve_user_switch_anonymous()
- services_controller_execute in includes/
services.runtime.inc - Performs access checks and executes a services controller. This method is called by server implementations.
File
- includes/
services.runtime.inc, line 130 - Contains functions that only are necessary when a service call is made. This has broken out so that this code isn't loaded for every page load.
Code
function _services_controller_execute_preserve_user_switch_anonymous($controller) {
global $user;
services_set_server_info('original_user', $user);
$preserve_session = !user_is_anonymous();
services_set_server_info('preserve_session', $preserve_session);
if ($preserve_session) {
$original_session_state = drupal_save_session();
services_set_server_info('original_session_state', $original_session_state);
drupal_save_session(FALSE);
}
$user = drupal_anonymous_user();
$user->timestamp = time();
}