From 05b13c38b54b7d29ea4368999100c27cb7deb29e Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 22 Dec 2016 23:17:57 +0100
Subject: [PATCH] Re-enable Webfinger for locked accounts but don't handle
 "follow" events coming in via Salmon.

Currently no way to prevent remote follows, but they will only receive public
and unlisted posts
---
 app/controllers/xrd_controller.rb           | 2 +-
 app/services/process_interaction_service.rb | 2 +-
 config/locales/simple_form.en.yml           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/controllers/xrd_controller.rb b/app/controllers/xrd_controller.rb
index c3c38063c..9e0277860 100644
--- a/app/controllers/xrd_controller.rb
+++ b/app/controllers/xrd_controller.rb
@@ -13,7 +13,7 @@ class XrdController < ApplicationController
   end
 
   def webfinger
-    @account = Account.where(locked: false).find_local!(username_from_resource)
+    @account = Account.find_local!(username_from_resource)
     @canonical_account_uri = "acct:#{@account.username}@#{Rails.configuration.x.local_domain}"
     @magic_key = pem_to_magic_key(@account.keypair.public_key)
 
diff --git a/app/services/process_interaction_service.rb b/app/services/process_interaction_service.rb
index 4e5487681..3d3cccb6a 100644
--- a/app/services/process_interaction_service.rb
+++ b/app/services/process_interaction_service.rb
@@ -30,7 +30,7 @@ class ProcessInteractionService < BaseService
 
       case verb(xml)
       when :follow
-        follow!(account, target_account)
+        follow!(account, target_account) unless target_account.locked?
       when :unfollow
         unfollow!(account, target_account)
       when :favorite
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index deecff3fd..376c72e12 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -26,7 +26,7 @@ en:
         reblog: Send e-mail when someone reblogs your status
     hints:
       defaults:
-        locked: Requires you to approve followers, defaults post privacy to followers-only and disables federation
+        locked: Requires you to approve followers and defaults post privacy to followers-only
     'no': 'No'
     required:
       mark: "*"