Merge pull request #10644 from annando/issue-10640

Issue 10640: Use consistent settings to enable protocol support
This commit is contained in:
Hypolite Petovan 2021-08-30 17:36:52 -04:00 committed by GitHub
commit 80ff11e626
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 322 additions and 311 deletions

View file

@ -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()

View file

@ -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,13 @@ 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_able' => function_exists('imap_open'),
'$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.')],
'$mail_not_able' => DI::l10n()->t('Mail support can\'t be enabled because the PHP IMAP module is not installed.'),
'$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'), ''],

View file

@ -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';
}

View file

@ -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';
}

View file

@ -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;
}

View file

@ -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]);

File diff suppressed because it is too large Load diff

View file

@ -56,17 +56,25 @@
{{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}}
{{if $mail_able}}
{{include file="field_checkbox.tpl" field=$mail_enabled}}
{{else}}
<div class='field checkbox' id='div_id_{{$mail_enabled.0}}'>
<label for='id_{{$mail_enabled.0}}'>{{$mail_enabled.1}}</label>
<span class="field_help" role="tooltip" id="id_{{$mail_enabled.0}}">{{$mail_not_able}}</span>
</div>
{{/if}}
{{include file="field_checkbox.tpl" field=$ostatus_enabled}}
{{if $diaspora_able}}
{{include file="field_checkbox.tpl" field=$diaspora_enabled}}
{{else}}
<div class='field checkbox' id='div_id_{{$diaspora_enabled.0}}'>
<label for='id_{{$diaspora_enabled.0}}'>{{$diaspora_enabled.1}}</label>
<span id='id_{{$diaspora_enabled.0}}'>{{$diaspora_not_able}}</span>
<span class="field_help" role="tooltip" id="id_{{diaspora_enabled.0}}">{{$diaspora_not_able}}</span>
</div>
{{/if}}
{{include file="field_checkbox.tpl" field=$dfrn_only}}
{{include file="field_input.tpl" field=$global_directory}}
<div class="submit"><input type="submit" name="republish_directory" value="{{$republish}}"/></div>
{{include file="field_checkbox.tpl" field=$newuser_private}}

View file

@ -135,17 +135,25 @@
{{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}}
{{if $mail_able}}
{{include file="field_checkbox.tpl" field=$mail_enabled}}
{{else}}
<div class="field checkbox" id="div_id_{{$mail_enabled.0}}">
<label for="id_{{$mail_enabled.0}}">{{$mail_enabled.1}}</label>
<span class="help-block" id="id_{{$mail_enabled.0}}" role="tooltip">{{$mail_not_able}}</span>
</div>
{{/if}}
{{include file="field_checkbox.tpl" field=$ostatus_enabled}}
{{if $diaspora_able}}
{{include file="field_checkbox.tpl" field=$diaspora_enabled}}
{{else}}
<div class="field checkbox" id="div_id_{{$diaspora_enabled.0}}">
<label for="id_{{$diaspora_enabled.0}}">{{$diaspora_enabled.1}}</label>
<span id="id_{{$diaspora_enabled.0}}">{{$diaspora_not_able}}</span>
<span class="help-block" id="id_{{$diaspora_enabled.0}}" role="tooltip">{{$diaspora_not_able}}</span>
</div>
{{/if}}
{{include file="field_checkbox.tpl" field=$dfrn_only}}
{{include file="field_input.tpl" field=$global_directory}}
<p>
<input type="submit" name="republish_directory" class="btn btn-primary" value="{{$republish}}"/>

View file

@ -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"];
}