You are here

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();
}