Fix some login weirdness
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 30 Jun 2009 06:06:49 +0000 (00:06 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 30 Jun 2009 06:06:49 +0000 (00:06 -0600)
imp/login.php
imp/redirect.php
imp/templates/login/login.html

index 8a3f442..9081599 100644 (file)
@@ -31,6 +31,8 @@ $logout_reason = $auth->getLogoutReason();
 $actionID = (Horde_Util::getFormData('action') == 'compose') ? 'login_compose' : Horde_Util::getFormData('actionID');
 $url_param = Horde_Util::getFormData('url');
 
+$load_frameset = intval($imp_auth && empty($conf['menu']['always']));
+
 /* Handle cases where we already have a session. */
 if (!empty($_SESSION['imp']) && is_array($_SESSION['imp'])) {
     if ($logout_reason) {
@@ -339,8 +341,8 @@ IMP::addInlineScript(array(
     'ImpLogin.ie_clientcaps = ' . intval($t->get('ie_clientcaps')),
     'ImpLogin.imp_auth = ' . intval($imp_auth),
     'ImpLogin.lang_url = ' . Horde_Serialize::serialize($lang_url, Horde_Serialize::JSON, $charset),
-    'ImpLogin.nomenu = ' . intval(empty($conf['menu']['always'])),
-    'ImpLogin.reloadmenu = ' . intval($logout_reason && $imp_auth && $conf['menu']['always']),
+    'ImpLogin.nomenu = ' . $load_frameset,
+    'ImpLogin.reloadmenu = ' . intval($logout_reason && $load_frameset),
     'ImpLogin.show_list = ' . intval($show_list),
     'ImpLogin.dimp_sel = ' . intval($dimp_sel),
 ));
index 769b09c..91a011e 100644 (file)
 
 function _framesetUrl($url)
 {
-    if (!$GLOBALS['noframeset'] && Horde_Util::getFormData('load_frameset')) {
+    if (!empty($conf['menu']['always']) ||
+        $GLOBALS['prefs']->getValue('show_sidebar')) {
         $url = Horde_Util::addParameter(Horde::applicationUrl($GLOBALS['registry']->get('webroot', 'horde') . '/index.php', true), array('url' => _addAnchor($url, 'param')), null, false);
 
         /* Need to do a loginTasks check here because we must display login
          * tasks before frameset is loaded. */
         IMP_Session::loginTasks($url);
     }
+
     return $url;
 }
 
-function _newSessionUrl($actionID, $isLogin)
+function _newSessionUrl($actionID)
 {
     $url = '';
     $addActionID = true;
@@ -30,15 +32,16 @@ function _newSessionUrl($actionID, $isLogin)
         $url = Horde::url(Horde_Util::removeParameter($GLOBALS['url_in'], session_name()), true);
     } elseif (Auth::getProvider() == 'imp') {
         $url = Horde::applicationUrl($GLOBALS['registry']->get('webroot', 'horde') . '/', true);
+
         /* Force the initial page to IMP if we're logging in to compose a
          * message. */
         if ($actionID == 'login_compose') {
-            $url = Horde_Util::addParameter($url, 'url', _addAnchor(IMP_Session::getInitialUrl('login_compose', false), 'param'));
+            $url = Horde_Util::addParameter($url, 'url', _addAnchor(IMP_Session::getInitialUrl($actionID, false), 'param'));
             $addActionID = false;
         }
     } else {
         $url = IMP_Session::getInitialUrl($actionID, false);
-        if ($isLogin) {
+        if ($GLOBALS['isLogin']) {
             /* Don't show popup window in initial page. */
             $url = Horde_Util::addParameter($url, 'no_newmail_popup', 1, false);
         }
@@ -93,7 +96,6 @@ if (!empty($autologin)) {
     $pass = Auth::getCredential('password');
 }
 $isLogin = empty($_SESSION['imp']['logintasks']);
-$noframeset = false;
 
 /* Get URL/Anchor strings now. */
 $url_anchor = null;
@@ -160,7 +162,7 @@ if (!is_null($imapuser) && !is_null($pass)) {
             Horde::callHook('_imp_hook_postlogin', array($actionID, $isLogin), 'imp');
         }
 
-        _redirect(_framesetUrl(_newSessionUrl($actionID, $isLogin)));
+        _redirect(_framesetUrl(_newSessionUrl($actionID)));
     }
 
     _redirect(IMP::getLogoutUrl(null, true));
index 6ae3231..8f1cae5 100644 (file)
@@ -2,7 +2,6 @@
 <tag:formInput />
 <input type="hidden" name="actionID" value="<tag:actionID />" />
 <input type="hidden" name="url" value="<tag:url />" />
-<input type="hidden" name="load_frameset" value="<tag:imp_auth />" />
 <input type="hidden" name="autologin" value="<tag:autologin />" />
 <input type="hidden" name="anchor_string" id="anchor_string" value="<tag:anchor_string />" />
 <if:ie_clientcaps>