From 18a53c7ffc56dd4df59a389b1f366a7089f51df6 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Tue, 21 Jul 2009 21:49:28 -0600 Subject: [PATCH] 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. --- framework/Core/lib/Horde/Registry.php | 4 ++++ framework/LoginTasks/lib/Horde/LoginTasks.php | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) 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)); -- 2.11.0