about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/models/account.rb2
-rw-r--r--app/models/form/admin_settings.rb2
-rw-r--r--app/services/activitypub/process_account_service.rb2
-rw-r--r--app/views/admin/settings/edit.html.haml2
-rw-r--r--config/locales/en.yml7
-rw-r--r--config/settings.yml1
6 files changed, 12 insertions, 4 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index 68d23b299..ca298f5d8 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -252,7 +252,7 @@ class Account < ApplicationRecord
   def mark_known!
     update!(known: true)
 
-    unless local? || domain == username
+    unless local? || !Setting.auto_mark_instance_actors_known || domain == username
       _instance_actor = Account.find_remote(domain, domain)
       return if _instance_actor.nil? || _instance_actor.known?
 
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 03f6059dc..359271e5d 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -37,6 +37,7 @@ class Form::AdminSettings
     auto_reject_unknown
     auto_mark_known
     auto_mark_instance_actors_known
+    always_mark_instance_actors_known
     werewolf_status
     spam_check_enabled
   ).freeze
@@ -57,6 +58,7 @@ class Form::AdminSettings
     auto_reject_unknown
     auto_mark_known
     auto_mark_instance_actors_known
+    always_mark_instance_actors_known
     werewolf_status
     spam_check_enabled
   ).freeze
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 6dd73b112..4067e474f 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -62,7 +62,7 @@ class ActivityPub::ProcessAccountService < BaseService
     @account.silenced_at      = domain_block.created_at if auto_silence?
     @account.force_unlisted   = true if auto_force_unlisted?
     @account.force_sensitive  = true if auto_force_sensitive?
-    @account.known            = @username == @domain ? Setting.auto_mark_instance_actors_known : (!Setting.auto_reject_unknown && Setting.auto_mark_known)
+    @account.known            = @username == @domain ? Setting.always_mark_instance_actors_known : (!Setting.auto_reject_unknown && Setting.auto_mark_known)
   end
 
   def update_account
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index fe1ba447a..2203c8275 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -48,6 +48,8 @@
 
   = f.input :auto_mark_instance_actors_known, as: :boolean, wrapper: :with_label, label: t('admin.settings.auto_mark_instance_actors_known.title'), hint: t('admin.settings.auto_mark_instance_actors_known.desc_html')
 
+  = f.input :always_mark_instance_actors_known, as: :boolean, wrapper: :with_label, label: t('admin.settings.always_mark_instance_actors_known.title'), hint: t('admin.settings.always_mark_instance_actors_known.desc_html')
+
   %hr.spacer/
 
   .fields-group
diff --git a/config/locales/en.yml b/config/locales/en.yml
index ee7af2eb8..6d5c4f093 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -521,8 +521,11 @@ en:
         desc_html: Learn known accounts from outgoing interactions and incoming repeats from packmates.
         title: Auto-learn known accounts
       auto_mark_instance_actors_known:
-        desc_html: <strong>Disabling this will put the server in must-consent federation mode and require staff to manually approve server actors if graylist mode is also disabled.</strong>
-        title: Always mark server actor accounts as known
+        desc_html: Automatically allow server actor accounts to fetch resources from this server when marking accounts known.
+        title: Auto-trust server actors
+      always_mark_instance_actors_known:
+        desc_html: Always allow server actor accounts to fetch resources from this server.  May reduce privacy.
+        title: Always trust server actors
       werewolf_status:
         desc_html: Enable werewolf status Easter egg (requires an announcer account)
         title: Werewolf status
diff --git a/config/settings.yml b/config/settings.yml
index de990fdbe..23f77c55e 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -71,6 +71,7 @@ defaults: &defaults
   werewolf_status: true
   spam_check_enabled: true
   auto_mark_instance_actors_known: true
+  always_mark_instance_actors_known: false
 
 development:
   <<: *defaults