From: Michael M Slusarz Date: Wed, 22 Jul 2009 03:49:28 +0000 (-0600) Subject: First attempt at placing logintasks in the proper place. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=18a53c7ffc56dd4df59a389b1f366a7089f51df6;p=horde.git First attempt at placing logintasks in the proper place. This is the only place guaranteed to run logintasks on both regular and transparent auth. However, it may not be appropriate to run logintasks if we are doing some kind of API call. It might be better to simply run all login tasks for all applications on initial login. --- diff --git a/framework/Core/lib/Horde/Registry.php b/framework/Core/lib/Horde/Registry.php index f74c0503b..dd5afd164 100644 --- a/framework/Core/lib/Horde/Registry.php +++ b/framework/Core/lib/Horde/Registry.php @@ -854,6 +854,10 @@ class Horde_Registry /* Call post-push hook. */ Horde::callHook('_horde_hook_post_pushapp', array($app), 'horde'); + /* Do login tasks. */ + $tasks = Horde_LoginTasks::singleton($app, Horde::selfUrl(true, true, true)); + $tasks->runTasks(); + return true; } diff --git a/framework/LoginTasks/lib/Horde/LoginTasks.php b/framework/LoginTasks/lib/Horde/LoginTasks.php index 4d084b8f1..43dc18652 100644 --- a/framework/LoginTasks/lib/Horde/LoginTasks.php +++ b/framework/LoginTasks/lib/Horde/LoginTasks.php @@ -130,7 +130,8 @@ class Horde_LoginTasks /* If this application handles Horde auth, need to add Horde tasks * here. */ $app_list = array($this->_app); - if (strnatcasecmp($this->_app, Horde_Auth::getProvider()) === 0) { + if (($this->_app != 'horde') && + !isset($_SESSION['horde_logintasks']['horde'])) { array_unshift($app_list, 'horde'); } @@ -236,8 +237,10 @@ class Horde_LoginTasks if (empty($need_display)) { $lasttasks = unserialize($GLOBALS['prefs']->getValue('last_logintasks')); $lasttasks[$this->_app] = time(); - if (strnatcasecmp($this->_app, Horde_Auth::getProvider()) === 0) { + if (($this->_app != 'horde') && + !isset($_SESSION['horde_logintasks']['horde'])) { $lasttasks['horde'] = time(); + $_SESSION['horde_logintasks']['horde'] = true; } $GLOBALS['prefs']->setValue('last_logintasks', serialize($lasttasks));