diff options
author | zotlabs <mike@macgirvin.com> | 2018-04-11 17:40:04 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-04-11 17:40:04 -0700 |
commit | 2fa9645dfc4dc640d7460f069fc9536cce1e4fd2 (patch) | |
tree | 5a39b89802c92f32af7795050aaa3e11f9db21e6 /Zotlabs/Module | |
parent | 90580a860b45629f510c0cf6871fe312a9693a77 (diff) | |
download | volse-hubzilla-2fa9645dfc4dc640d7460f069fc9536cce1e4fd2.tar.gz volse-hubzilla-2fa9645dfc4dc640d7460f069fc9536cce1e4fd2.tar.bz2 volse-hubzilla-2fa9645dfc4dc640d7460f069fc9536cce1e4fd2.zip |
channel delegation: push current identity and pop it on logout from the delegated channel. This fixes the known issue of being forced to log back in after leaving the delegated channel.
Diffstat (limited to 'Zotlabs/Module')
-rw-r--r-- | Zotlabs/Module/Logout.php | 7 | ||||
-rw-r--r-- | Zotlabs/Module/Magic.php | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Zotlabs/Module/Logout.php b/Zotlabs/Module/Logout.php index f06e7278b..d11ce54ac 100644 --- a/Zotlabs/Module/Logout.php +++ b/Zotlabs/Module/Logout.php @@ -5,7 +5,12 @@ namespace Zotlabs\Module; class Logout extends \Zotlabs\Web\Controller { function init() { - \App::$session->nuke(); + if($_SESSION['delegate'] && $_SESSION['delegate_push']) { + $_SESSION = $_SESSION['delegate_push']; + } + else { + \App::$session->nuke(); + } goaway(z_root()); } diff --git a/Zotlabs/Module/Magic.php b/Zotlabs/Module/Magic.php index 15e5cedcf..4b3a223ba 100644 --- a/Zotlabs/Module/Magic.php +++ b/Zotlabs/Module/Magic.php @@ -112,6 +112,8 @@ class Magic extends \Zotlabs\Web\Controller { if($r && intval($r[0]['channel_id'])) { $allowed = perm_is_allowed($r[0]['channel_id'],get_observer_hash(),'delegate'); if($allowed) { + $tmp = $_SESSION; + $_SESSION['delegate_push'] = $tmp; $_SESSION['delegate_channel'] = $r[0]['channel_id']; $_SESSION['delegate'] = get_observer_hash(); $_SESSION['account_id'] = intval($r[0]['channel_account_id']); |