Summary | DIMP initialises IMP session |
Queue | DIMP |
Queue Version | 1.1.4 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | slusarz (at) horde (dot) org |
Requester | Valentin.Vidic (at) carnet (dot) hr |
Created | 05/13/2010 (5533 days ago) |
Due | |
Updated | 05/13/2010 (5533 days ago) |
Assigned | 05/13/2010 (5533 days ago) |
Resolved | 05/13/2010 (5533 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | Yes |
State ⇒ Resolved
Bug: 9024Submitted by: Valentin.Vidic@CARNet.hr
Don't set viewmode if session is not active.
http://cvs.horde.org/diff.php/dimp/lib/base.php?rt=horde&r1=1.33.2.9&r2=1.33.2.10&ty=u
Bug: 9024Submitted by: Valentin.Vidic@CARNet.hr
Don't set viewmode if session is not active.
http://cvs.horde.org/diff.php/imp/lib/base.php?rt=horde&r1=1.79.10.21&r2=1.79.10.22&ty=u
State ⇒ Assigned
Priority ⇒ 1. Low
Type ⇒ Bug
Summary ⇒ DIMP initialises IMP session
Queue ⇒ DIMP
Milestone ⇒
Patch ⇒ Yes
New Attachment: dimp_session.diff
State ⇒ Unconfirmed
to Horde login screen. After logging in /dimp/index.php is opened
again but this time IMP session is missing. Another redirect happens
here, this time to /imp/redirect.php. Finally /imp/redirect.php
forwards to /imp/login.php with logout_reason=failed. This final
redirect happens here:
/* If we already have a session: */
if (isset($_SESSION['imp']) && is_array($_SESSION['imp'])) {
/* Make sure that if a username was specified, it is the current
* username. */
if (($imapuser !== null && ($imapuser != $_SESSION['imp']['user'])) ||
($pass !== null && ($pass !=
Secret::read(Secret::getKey('imp'), $_SESSION['imp']['pass'])))) {
/* Disable the old session. */
unset($_SESSION['imp']);
_redirect(Auth::addLogoutParameters(IMP::logoutUrl(),
AUTH_REASON_FAILED));
}
Problem is that DIMP initializes $_SESSION['imp'] with
$_SESSION['imp']['viewmode'] = 'dimp'
but the rest of the session is missing so IMP thinks something went
wrong. Attached patch fixes this causing DIMP to update the session
only if it's already initialized.