[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)
committerGeorg Ringer <mail@ringerge.org>
Wed, 18 Jan 2012 18:03:26 +0000 (19:03 +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: I8df6682f0c28fd73cec461211c87fdcb4c9c4cb1
Fixes: #28007
Releases: 4.7, 4.6, 4.5
Reviewed-on: http://review.typo3.org/7807
Reviewed-by: Steffen Ritter
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
t3lib/class.t3lib_tcemain.php

index 57c67eb..153ce9b 100644 (file)
@@ -6812,7 +6812,9 @@ class t3lib_TCEmain {
        public function clear_cacheCmd($cacheCmd) {
                global $TYPO3_CONF_VARS;
 
-               $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) {