Index: typo3/sysext/cms/tslib/class.tslib_feuserauth.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_feuserauth.php (revision 9008) +++ typo3/sysext/cms/tslib/class.tslib_feuserauth.php (revision ) @@ -486,6 +486,31 @@ } /** + * Returns the session data stored for $key. + * The data will last only for this login session since it is stored in the session table. + * + * @param string $key + * @return mixed + */ + public function getSessionData($key) { + return $this->getKey('ses', $key); + } + + /** + * Saves the tokens so that they can be used by a later incarnation of this class. + * + * @param string $key + * @param mixed $data + * @return void + */ + public function setAndSaveSessionData($key, $data) { + $this->setKey('ses', $key, $data); + $this->storeSessionData(); + } + + + + /** * Registration of records/"shopping basket" in session data * This will take the input array, $recs, and merge into the current "recs" array found in the session data. * If a change in the recs storage happens (which it probably does) the function setKey() is called in order to store the array again. Index: t3lib/class.t3lib_flashmessagequeue.php =================================================================== --- t3lib/class.t3lib_flashmessagequeue.php (revision 9539) +++ t3lib/class.t3lib_flashmessagequeue.php (revision ) @@ -55,11 +55,7 @@ if ($message->isSessionMessage()) { $queuedFlashMessages = self::getFlashMessagesFromSession(); $queuedFlashMessages[] = $message; - - $GLOBALS['BE_USER']->setAndSaveSessionData( - 'core.template.flashMessages', - $queuedFlashMessages - ); + self::storeFlashMessagesInSession($queuedFlashMessages); } else { self::$messages[] = $message; } @@ -77,10 +73,7 @@ $queuedFlashMessagesFromSession = self::getFlashMessagesFromSession(); if (!empty($queuedFlashMessagesFromSession)) { // reset messages in user session - $GLOBALS['BE_USER']->setAndSaveSessionData( - 'core.template.flashMessages', - null - ); + self::removeAllFlashMessagesFromSession(); } $queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages); @@ -92,17 +85,47 @@ } /** + * Stores given flash messages in the session + * + * @param array array of t3lib_FlashMessage + * @return void + */ + protected static function storeFlashMessagesInSession(array $flashMessages) { + self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', $flashMessages); + + } + + /** + * Removes all flash messages from the session + * + * @return void + */ + protected static function removeAllFlashMessagesFromSession() { + self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', NULL); + } + + /** * Returns current flash messages from the session, making sure to always * return an array. * * @return array An array of t3lib_FlashMessage flash messages. */ protected static function getFlashMessagesFromSession() { - $flashMessages = $GLOBALS['BE_USER']->getSessionData('core.template.flashMessages'); + $flashMessages = self::getUserByContext()->getSessionData('core.template.flashMessages'); + return is_array($flashMessages) ? $flashMessages : array(); } /** + * Gets user object by context + * + * @return object user object + */ + protected function getUserByContext() { + return TYPO3_MODE === 'BE' ? $GLOBALS['BE_USER'] : $GLOBALS['TSFE']->fe_user; + } + + /** * Fetches and renders all available flash messages from the queue. * * @return string All flash messages in the queue rendered as HTML. @@ -126,4 +149,4 @@ if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php']); } -?> \ No newline at end of file +?>