Changed session owner to 'system' during execution of cronjobs
authorMarcel Werk <burntime@woltlab.com>
Thu, 5 Feb 2015 18:39:55 +0000 (19:39 +0100)
committerMarcel Werk <burntime@woltlab.com>
Thu, 5 Feb 2015 18:39:55 +0000 (19:39 +0100)
wcfsetup/install/files/lib/data/cronjob/CronjobAction.class.php

index cdc6d811cd281d230596639849f08a8eb5a66b82..0d69922926ebebdbebc5239f2c3b3a400f2ab13d 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 namespace wcf\data\cronjob;
 use wcf\data\cronjob\log\CronjobLogEditor;
+use wcf\data\user\User;
 use wcf\data\AbstractDatabaseObjectAction;
 use wcf\data\IToggleAction;
 use wcf\system\cronjob\CronjobScheduler;
@@ -209,6 +210,10 @@ class CronjobAction extends AbstractDatabaseObjectAction implements IToggleActio
         * Executes open cronjobs.
         */
        public function executeCronjobs() {
+               // switch session owner to 'system' during execution of cronjobs
+               WCF::getSession()->changeUser(new User(null, array('userID' => 0, 'username' => 'System')), true);
+               WCF::getSession()->disableUpdate();
+               
                CronjobScheduler::getInstance()->executeCronjobs();
        }
 }