Commit 340626 by dries
- Patch #431776 by catch, agentrickard, Damien Tournoud, Dries: cron should run as anonymous when invoked via the run-cron link on the status report page.
--- <a href="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" title="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" rel="nofollow">http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc</a> 2010/03/11 21:23:05 1.1127
+++ <a href="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" title="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" rel="nofollow">http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc</a> 2010/03/12 14:20:32 1.1128
@@ -4385,6 +4385,14 @@
// Allow execution to continue even if the request gets canceled.
@ignore_user_abort(TRUE);
+ // Prevent session information from being saved while cron is running.
+ drupal_save_session(FALSE);
+
+ // Force the current user to anonymous to ensure consistent permissions on
+ // cron runs.
+ $original_user = $GLOBALS['user'];
+ $GLOBALS['user'] = drupal_anonymous_user();
+
// Try to allocate enough time to run all the hook_cron implementations.
drupal_set_time_limit(240);
@@ -4445,6 +4453,10 @@
$queue->deleteItem($item);
}
}
+ // Restore the user.
+ $GLOBALS['user'] = $original_user;
+ drupal_save_session(TRUE);
+
return $return;
}
+++ <a href="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" title="http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc" rel="nofollow">http://drupalcode.org/viewvc/drupal/drupal/includes/common.inc</a> 2010/03/12 14:20:32 1.1128
@@ -4385,6 +4385,14 @@
// Allow execution to continue even if the request gets canceled.
@ignore_user_abort(TRUE);
+ // Prevent session information from being saved while cron is running.
+ drupal_save_session(FALSE);
+
+ // Force the current user to anonymous to ensure consistent permissions on
+ // cron runs.
+ $original_user = $GLOBALS['user'];
+ $GLOBALS['user'] = drupal_anonymous_user();
+
// Try to allocate enough time to run all the hook_cron implementations.
drupal_set_time_limit(240);
@@ -4445,6 +4453,10 @@
$queue->deleteItem($item);
}
}
+ // Restore the user.
+ $GLOBALS['user'] = $original_user;
+ drupal_save_session(TRUE);
+
return $return;
}