[BUGFIX] TCEmain::clear_cacheCmd relies on active BE_USER
authorSteffen Gebert <steffen.gebert@typo3.org>
Thu, 29 Dec 2011 11:21:32 +0000 (12:21 +0100)
committerTolleiv Nietsch <info@tolleiv.de>
Sun, 15 Jan 2012 16:01:40 +0000 (17:01 +0100)
Several developers abuse t3lib_TCEmain and instantiate it also in other
contexts than BE, for which it never was made.

As this breaks several extensions that use it in FE or CLI mode and the
fix is trivial, avoid crashing.

Change-Id: I0998b4fc36bb803f82becbbca0137a7dfd43eb8a
Fixes: #28007
Releases: 4.7, 4.6, 4.5
Reviewed-on: http://review.typo3.org/7633
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Wouter Wolters
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
Reviewed-by: Tolleiv Nietsch
Tested-by: Tolleiv Nietsch
t3lib/class.t3lib_tcemain.php

index 3a9bdd1..d2f7598 100644 (file)
@@ -6646,7 +6646,9 @@ class t3lib_TCEmain {
         * @return      void
         */
        public function clear_cacheCmd($cacheCmd) {
-               $this->BE_USER->writelog(3, 1, 0, 0, 'User %s has cleared the cache (cacheCmd=%s)', array($this->BE_USER->user['username'], $cacheCmd));
+               if (is_object($this->BE_USER)) {
+                       $this->BE_USER->writelog(3, 1, 0, 0, 'User %s has cleared the cache (cacheCmd=%s)', array($this->BE_USER->user['username'], $cacheCmd));
+               }
 
                        // Clear cache for either ALL pages or ALL tables!
                switch ($cacheCmd) {