From e3c7cd25e1339cf0f6342f6977a7dcdb8333b88e Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 30 Aug 2021 19:46:10 +0000 Subject: [PATCH] Issue 10640: Use consistent settings to enable protocol support --- mod/settings.php | 9 +-------- src/Module/Admin/Site.php | 15 +++++++-------- src/Module/NodeInfo120.php | 2 +- src/Module/NodeInfo210.php | 2 +- src/Worker/Delivery.php | 4 ++-- src/Worker/Notifier.php | 2 +- view/templates/admin/site.tpl | 4 ++-- view/theme/frio/templates/admin/site.tpl | 4 ++-- view/theme/vier/theme.php | 2 +- 9 files changed, 18 insertions(+), 26 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index 3ff27e984..8f48f6686 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -92,11 +92,7 @@ function settings_post(App $a) $mail_replyto = $_POST['mail_replyto'] ?? ''; $mail_pubmail = $_POST['mail_pubmail'] ?? ''; - if ( - !DI::config()->get('system', 'dfrn_only') - && function_exists('imap_open') - && !DI::config()->get('system', 'imap_disabled') - ) { + if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) { $failed = false; $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", intval(local_user()) @@ -513,9 +509,6 @@ function settings_content(App $a) } $mail_disabled = ((function_exists('imap_open') && (!DI::config()->get('system', 'imap_disabled'))) ? 0 : 1); - if (DI::config()->get('system', 'dfrn_only')) { - $mail_disabled = 1; - } if (!$mail_disabled) { $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", local_user() diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index 9d0e9c9da..af276a3f4 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -183,8 +183,8 @@ class Site extends BaseAdmin $poco_discovery = (!empty($_POST['poco_discovery']) ? intval(trim($_POST['poco_discovery'])) : false); $poco_local_search = !empty($_POST['poco_local_search']); $nodeinfo = !empty($_POST['nodeinfo']); - $dfrn_only = !empty($_POST['dfrn_only']); - $ostatus_disabled = !empty($_POST['ostatus_disabled']); + $mail_enabled = !empty($_POST['mail_enabled']); + $ostatus_enabled = !empty($_POST['ostatus_enabled']); $diaspora_enabled = !empty($_POST['diaspora_enabled']); $ssl_policy = (!empty($_POST['ssl_policy']) ? intval($_POST['ssl_policy']) : 0); $force_ssl = !empty($_POST['force_ssl']); @@ -340,8 +340,8 @@ class Site extends BaseAdmin DI::config()->set('system', 'proxyuser' , $proxyuser); DI::config()->set('system', 'proxy' , $proxy); DI::config()->set('system', 'curl_timeout' , $timeout); - DI::config()->set('system', 'dfrn_only' , $dfrn_only); - DI::config()->set('system', 'ostatus_disabled' , $ostatus_disabled); + DI::config()->set('system', 'imap_disabled' , !$mail_enabled && function_exists('imap_open')); + DI::config()->set('system', 'ostatus_disabled' , !$ostatus_enabled); DI::config()->set('system', 'diaspora_enabled' , $diaspora_enabled); DI::config()->set('config', 'private_addons' , $private_addons); @@ -560,12 +560,11 @@ class Site extends BaseAdmin '$no_regfullname' => ['no_regfullname', DI::l10n()->t('No Fullname check'), DI::config()->get('system', 'no_regfullname'), DI::l10n()->t('Allow users to register without a space between the first name and the last name in their full name.')], '$community_page_style' => ['community_page_style', DI::l10n()->t('Community pages for visitors'), DI::config()->get('system', 'community_page_style'), DI::l10n()->t('Which community pages should be available for visitors. Local users always see both pages.'), $community_page_style_choices], '$max_author_posts_community_page' => ['max_author_posts_community_page', DI::l10n()->t('Posts per user on community page'), DI::config()->get('system', 'max_author_posts_community_page'), DI::l10n()->t('The maximum number of posts per user on the community page. (Not valid for "Global Community")')], - '$ostatus_disabled' => ['ostatus_disabled', DI::l10n()->t('Disable OStatus support'), DI::config()->get('system', 'ostatus_disabled'), DI::l10n()->t('Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.')], - '$ostatus_not_able' => DI::l10n()->t('OStatus support can only be enabled if threading is enabled.'), + '$mail_enabled' => ['mail_enabled', DI::l10n()->t('Enable Mail support'), !DI::config()->get('system', 'imap_disabled', !function_exists('imap_open')), DI::l10n()->t('Enable built-in mail support to poll IMAP folders and to reply via mail.')], + '$ostatus_enabled' => ['ostatus_enabled', DI::l10n()->t('Enable OStatus support'), !DI::config()->get('system', 'ostatus_disabled'), DI::l10n()->t('Enable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public.')], '$diaspora_able' => $diaspora_able, '$diaspora_not_able' => DI::l10n()->t('Diaspora support can\'t be enabled because Friendica was installed into a sub directory.'), - '$diaspora_enabled' => ['diaspora_enabled', DI::l10n()->t('Enable Diaspora support'), DI::config()->get('system', 'diaspora_enabled', $diaspora_able), DI::l10n()->t('Provide built-in Diaspora network compatibility.')], - '$dfrn_only' => ['dfrn_only', DI::l10n()->t('Only allow Friendica contacts'), DI::config()->get('system', 'dfrn_only'), DI::l10n()->t('All contacts must use Friendica protocols. All other built-in communication protocols disabled.')], + '$diaspora_enabled' => ['diaspora_enabled', DI::l10n()->t('Enable Diaspora support'), DI::config()->get('system', 'diaspora_enabled', $diaspora_able), DI::l10n()->t('Enable built-in Diaspora network compatibility for communicating with diaspora servers.')], '$verifyssl' => ['verifyssl', DI::l10n()->t('Verify SSL'), DI::config()->get('system', 'verifyssl'), DI::l10n()->t('If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.')], '$proxyuser' => ['proxyuser', DI::l10n()->t('Proxy user'), DI::config()->get('system', 'proxyuser'), ''], '$proxy' => ['proxy', DI::l10n()->t('Proxy URL'), DI::config()->get('system', 'proxy'), ''], diff --git a/src/Module/NodeInfo120.php b/src/Module/NodeInfo120.php index 7ff7282d1..0eb6e793f 100644 --- a/src/Module/NodeInfo120.php +++ b/src/Module/NodeInfo120.php @@ -72,7 +72,7 @@ class NodeInfo120 extends BaseModule $nodeinfo['services']['inbound'][] = 'rss2.0'; $nodeinfo['services']['outbound'][] = 'atom1.0'; - if (function_exists('imap_open') && !$config->get('system', 'imap_disabled') && !$config->get('system', 'dfrn_only')) { + if (function_exists('imap_open') && !$config->get('system', 'imap_disabled')) { $nodeinfo['services']['inbound'][] = 'imap'; } diff --git a/src/Module/NodeInfo210.php b/src/Module/NodeInfo210.php index 2e0262f03..5ea9c0e68 100644 --- a/src/Module/NodeInfo210.php +++ b/src/Module/NodeInfo210.php @@ -72,7 +72,7 @@ class NodeInfo210 extends BaseModule $nodeinfo['services']['inbound'][] = 'rss2.0'; $nodeinfo['services']['outbound'][] = 'atom1.0'; - if (function_exists('imap_open') && !$config->get('system', 'imap_disabled') && !$config->get('system', 'dfrn_only')) { + if (function_exists('imap_open') && !$config->get('system', 'imap_disabled')) { $nodeinfo['services']['inbound'][] = 'imap'; } diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index e42b5a101..55a0cf96d 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -394,7 +394,7 @@ class Delivery Logger::notice('Deliver via Diaspora', ['target' => $target_item['id'], 'guid' => $target_item['guid'], 'to' => $loc]); - if (DI::config()->get('system', 'dfrn_only') || !DI::config()->get('system', 'diaspora_enabled')) { + if (!DI::config()->get('system', 'diaspora_enabled')) { return; } @@ -477,7 +477,7 @@ class Delivery */ private static function deliverMail($cmd, $contact, $owner, $target_item, $thr_parent) { - if (DI::config()->get('system','dfrn_only')) { + if (DI::config()->get('system','imap_disabled')) { return; } diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php index bec0c55f1..ef2d89839 100644 --- a/src/Worker/Notifier.php +++ b/src/Worker/Notifier.php @@ -615,7 +615,7 @@ class Notifier $url_recipients = array_filter($url_recipients); // send salmon slaps to mentioned remote tags (@foo@example.com) in OStatus posts // They are especially used for notifications to OStatus users that don't follow us. - if (!DI::config()->get('system', 'dfrn_only') && count($url_recipients) && ($public_message || $push_notify) && !empty($target_item)) { + if (count($url_recipients) && ($public_message || $push_notify) && !empty($target_item)) { $slap = OStatus::salmon($target_item, $owner); foreach ($url_recipients as $url) { Logger::info('Salmon delivery', ['item' => $target_id, 'to' => $url]); diff --git a/view/templates/admin/site.tpl b/view/templates/admin/site.tpl index 493abef61..d69d920a0 100644 --- a/view/templates/admin/site.tpl +++ b/view/templates/admin/site.tpl @@ -56,7 +56,8 @@ {{include file="field_select.tpl" field=$community_page_style}} {{include file="field_input.tpl" field=$max_author_posts_community_page}} - {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$mail_enabled}} + {{include file="field_checkbox.tpl" field=$ostatus_enabled}} {{if $diaspora_able}} {{include file="field_checkbox.tpl" field=$diaspora_enabled}} @@ -66,7 +67,6 @@ {{$diaspora_not_able}} {{/if}} - {{include file="field_checkbox.tpl" field=$dfrn_only}} {{include file="field_input.tpl" field=$global_directory}}
{{include file="field_checkbox.tpl" field=$newuser_private}} diff --git a/view/theme/frio/templates/admin/site.tpl b/view/theme/frio/templates/admin/site.tpl index ef8ef9786..2432e271a 100644 --- a/view/theme/frio/templates/admin/site.tpl +++ b/view/theme/frio/templates/admin/site.tpl @@ -135,7 +135,8 @@ {{include file="field_select.tpl" field=$community_page_style}} {{include file="field_input.tpl" field=$max_author_posts_community_page}} - {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$mail_enabled}} + {{include file="field_checkbox.tpl" field=$ostatus_enabled}} {{if $diaspora_able}} {{include file="field_checkbox.tpl" field=$diaspora_enabled}} @@ -145,7 +146,6 @@ {{$diaspora_not_able}} {{/if}} - {{include file="field_checkbox.tpl" field=$dfrn_only}} {{include file="field_input.tpl" field=$global_directory}}

diff --git a/view/theme/vier/theme.php b/view/theme/vier/theme.php index e357f2c04..c15629838 100644 --- a/view/theme/vier/theme.php +++ b/view/theme/vier/theme.php @@ -285,7 +285,7 @@ function vier_community_info() $r[] = ["photo" => "images/wordpress.png", "name" => "Wordpress"]; } - if (function_exists("imap_open") && !DI::config()->get("system", "imap_disabled") && !DI::config()->get("system", "dfrn_only")) { + if (function_exists("imap_open") && !DI::config()->get("system", "imap_disabled")) { $r[] = ["photo" => "images/mail.png", "name" => "E-Mail"]; }