diff options
-rwxr-xr-x | include/diaspora.php | 19 | ||||
-rw-r--r-- | include/follow.php | 9 | ||||
-rw-r--r-- | mod/admin.php | 3 | ||||
-rw-r--r-- | mod/settings.php | 7 | ||||
-rwxr-xr-x | view/tpl/admin_site.tpl | 1 | ||||
-rwxr-xr-x | view/tpl/settings_addons.tpl | 1 |
6 files changed, 38 insertions, 2 deletions
diff --git a/include/diaspora.php b/include/diaspora.php index 8968ee5f4..f0bd5d813 100755 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -64,6 +64,15 @@ function diaspora_dispatch($importer,$msg) { return; } + $allowed = get_pconfig($importer['channel_id'],'system','diaspora_allowed'); + if($allowed === false) + $allowed = 1; + + if(! intval($allowed)) { + logger('mod-diaspora: disallowed for channel ' . $importer['channel_name']); + return; + } + // php doesn't like dashes in variable names $msg['message'] = str_replace( @@ -169,6 +178,16 @@ function diaspora_process_outbound($arr) { */ + $allowed = get_pconfig($arr['channel']['channel_id'],'system','diaspora_allowed'); + if($allowed === false) + $allowed = 1; + + if(! intval($allowed)) { + logger('mod-diaspora: disallowed for channel ' . $arr['channel']['channel_name']); + return; + } + + if($arr['location']) return; diff --git a/include/follow.php b/include/follow.php index fd4e1597a..1e5df4cd5 100644 --- a/include/follow.php +++ b/include/follow.php @@ -135,6 +135,15 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) $result['message'] = t('Protocol disabled.'); return $result; } + + $allowed = get_pconfig($uid,'system','diaspora_allowed'); + if($allowed === false) + $allowed = 1; + + if(! intval($allowed)) { + $result['message'] = t('Protocol blocked for this channel.'); + return $result; + } } $their_perms = 0; diff --git a/mod/admin.php b/mod/admin.php index 0141f655f..eaaf67c8d 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -280,6 +280,7 @@ function admin_page_site_post(&$a){ $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : ''); $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : ''); + $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0); $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : ''); $allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : ''); @@ -309,6 +310,7 @@ function admin_page_site_post(&$a){ set_config('system', 'poll_interval', $poll_interval); set_config('system', 'maxloadavg', $maxloadavg); set_config('system', 'frontpage', $frontpage); + set_config('system', 'mirror_frontpage', $mirror_frontpage); set_config('system', 'sitename', $sitename); set_config('system', 'login_on_homepage', $login_on_homepage); set_config('system', 'verify_email', $verify_email); @@ -472,6 +474,7 @@ function admin_page_site(&$a) { '$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices), '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")), '$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")), + '$mirror_frontpage' => array('mirror_frontpage', t("Preserve site homepage URL"), get_config('system','mirror_frontpage'), t('Present the site homepage in a frame at the original location instead of redirecting')), '$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')), '$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")), '$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")), diff --git a/mod/settings.php b/mod/settings.php index 692668060..b0ba04dfc 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -124,6 +124,7 @@ function settings_post(&$a) { call_hooks('feature_settings_post', $_POST); if($_POST['dspr-submit']) { + set_pconfig(local_channel(),'system','diaspora_allowed',intval($_POST['dspr_allowed'])); set_pconfig(local_channel(),'system','diaspora_public_comments',intval($_POST['dspr_pubcomment'])); set_pconfig(local_channel(),'system','prevent_tag_hijacking',intval($_POST['dspr_hijack'])); info( t('Diaspora Policy Settings updated.') . EOL); @@ -667,12 +668,13 @@ function settings_content(&$a) { $settings_addons = t('No feature settings configured'); if($diaspora_enabled) { + $dspr_allowed = get_pconfig(local_channel(),'system','diaspora_allowed'); + if($dspr_allowed === false) + $dspr_allowed = 1; $pubcomments = get_pconfig(local_channel(),'system','diaspora_public_comments'); if($pubcomments === false) $pubcomments = 1; $hijacking = get_pconfig(local_channel(),'system','prevent_tag_hijacking'); - - } call_hooks('feature_settings', $settings_addons); @@ -684,6 +686,7 @@ function settings_content(&$a) { '$diaspora_enabled' => $diaspora_enabled, '$dsprdesc' => t('Settings for the built-in Diaspora emulator'), '$pubcomments' => array('dspr_pubcomment', t('Allow any Diaspora member to comment on your public posts'), $pubcomments, '', $yes_no), + '$dspr_allowed' => array('dspr_allowed', t('Enable the Diaspora protocol for this channel'), $dspr_allowed, '', $yes_no), '$dsprtitle' => t('Diaspora Policy Settings'), '$hijacking' => array('dspr_hijack', t('Prevent your hashtags from being redirected to other sites'), $hijacking, '', $yes_no), '$dsprsubmit' => t('Submit'), diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl index eabb6f067..3884038c0 100755 --- a/view/tpl/admin_site.tpl +++ b/view/tpl/admin_site.tpl @@ -47,6 +47,7 @@ {{include file="field_select.tpl" field=$theme}} {{include file="field_select.tpl" field=$theme_mobile}} {{include file="field_input.tpl" field=$frontpage}} + {{include file="field_checkbox.tpl" field=$mirror_frontpage}} {{include file="field_checkbox.tpl" field=$login_on_homepage}} diff --git a/view/tpl/settings_addons.tpl b/view/tpl/settings_addons.tpl index 9297a282a..ae8dac3f8 100755 --- a/view/tpl/settings_addons.tpl +++ b/view/tpl/settings_addons.tpl @@ -17,6 +17,7 @@ <div id="dspr-settings-content" class="panel-collapse collapse" role="tabpanel" aria-labelledby="dspr-settings"> <div class="section-content-tools-wrapper"> + {{include file="field_checkbox.tpl" field=$dspr_allowed}} {{include file="field_checkbox.tpl" field=$pubcomments}} {{include file="field_checkbox.tpl" field=$hijacking}} |