aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorThomas Willingham <beardyunixer@beardyunixer.com>2014-09-15 03:51:41 +0100
committerThomas Willingham <beardyunixer@beardyunixer.com>2014-09-15 03:51:41 +0100
commite3783dfdd41e17147f63e9b72f12f66b92a37262 (patch)
treebd09299ced5f5a177633122a92ccce24a8297959 /include
parentf2b0311f9d0446f4cfbf57143aa58462c7c8f39a (diff)
downloadvolse-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')
-rw-r--r--include/security.php14
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']);