diff options
-rwxr-xr-x | boot.php | 4 | ||||
-rw-r--r-- | include/text.php | 2 | ||||
-rw-r--r-- | include/widgets.php | 2 | ||||
-rw-r--r-- | mod/webpages.php | 27 |
4 files changed, 25 insertions, 10 deletions
@@ -677,8 +677,8 @@ class App { public $css_sources = array(); public $js_sources = array(); public $theme_info = array(); - - public $nav_sel; + public $is_sys = false; + public $nav_sel; public $category; diff --git a/include/text.php b/include/text.php index ba1f9e5a3..686dee4a2 100644 --- a/include/text.php +++ b/include/text.php @@ -2024,7 +2024,7 @@ function design_tools() { $channel = get_app()->get_channel(); - if(array_key_exists('sys',$_REQUEST) && $_REQUEST['sys'] == 1 && is_site_admin()) { + if(get_app()->is_sys && is_site_admin()) { require_once('include/identity.php'); $channel = get_sys_channel(); } diff --git a/include/widgets.php b/include/widgets.php index dcad3eff6..cb5dc6846 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -585,7 +585,7 @@ function widget_design_tools($arr) { // otherwise local_user() is sufficient for permissions. if($a->profile['profile_uid']) - if($a->profile['profile_uid'] != local_user()) + if(($a->profile['profile_uid'] != local_user()) && (! $a->is_sys)) return ''; if(! local_user()) diff --git a/mod/webpages.php b/mod/webpages.php index e7aef5fb0..d80a9a86e 100644 --- a/mod/webpages.php +++ b/mod/webpages.php @@ -1,16 +1,33 @@ <?php -function webpages_content(&$a) { +function webpages_init(&$a) { + + if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) { + require_once('include/identity.php'); + $sys = get_sys_channel(); + if($sys && intval($sys['channel_id'])) { + $a->is_sys = true; + } + } if(argc() > 1) $which = argv(1); - else { + else + return; + + profile_load($a,$which,$profile); + +} + + +function webpages_content(&$a) { + + if(! $a->profile) { notice( t('Requested profile is not available.') . EOL ); $a->error = 404; return; } - $uid = 0; $owner = 0; $channel = null; @@ -19,7 +36,7 @@ function webpages_content(&$a) { $profile = 0; $channel = $a->get_channel(); - if($which === 'sys' && is_site_admin()) { + if($a->is_sys && is_site_admin()) { require_once('include/identity.php'); $sys = get_sys_channel(); if($sys && intval($sys['channel_id'])) { @@ -29,8 +46,6 @@ function webpages_content(&$a) { } } - profile_load($a,$which,$profile); - if(! $owner) { // Figure out who the page owner is. $r = q("select channel_id from channel where channel_address = '%s'", |