diff options
author | Thomas Willingham <beardyunixer@beardyunixer.com> | 2014-09-15 03:51:41 +0100 |
---|---|---|
committer | Thomas Willingham <beardyunixer@beardyunixer.com> | 2014-09-15 03:51:41 +0100 |
commit | e3783dfdd41e17147f63e9b72f12f66b92a37262 (patch) | |
tree | bd09299ced5f5a177633122a92ccce24a8297959 /include/security.php | |
parent | f2b0311f9d0446f4cfbf57143aa58462c7c8f39a (diff) | |
download | volse-hubzilla-e3783dfdd41e17147f63e9b72f12f66b92a37262.tar.gz volse-hubzilla-e3783dfdd41e17147f63e9b72f12f66b92a37262.tar.bz2 volse-hubzilla-e3783dfdd41e17147f63e9b72f12f66b92a37262.zip |
Very, very cautiously, let a developer switch to the sys chan, if
they're also an admin.
Diffstat (limited to 'include/security.php')
-rw-r--r-- | include/security.php | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/security.php b/include/security.php index 0f2edc708..98d997288 100644 --- a/include/security.php +++ b/include/security.php @@ -82,6 +82,20 @@ function change_channel($change_channel) { intval(PAGE_REMOVED) ); + // It's not there. Is this an administrator, and is this the sys channel? + if (is_developer()) { + if (! $r) { + if (is_site_admin()) { + $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and ( channel_pageflags & %d) a$ + intval($change_channel), + intval(PAGE_SYSTEM), + intval(PAGE_REMOVED) + ); + } + } + } + + if($r) { $hash = $r[0]['channel_hash']; $_SESSION['uid'] = intval($r[0]['channel_id']); |