From 65f9db73b01012fd4944be9a56ba4a85407590aa Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 11 May 2017 21:54:30 +0200
Subject: [PATCH] Fix #2027 - Accept own ID for remote follow with and without
 preceding @ (#2991)

* Fix #2027 - Accept own ID for remote follow with and without preceding @
Fix #2177 - Omit leading "acct:" in remote follow redirect template expansion

* Fix test
---
 app/models/remote_follow.rb                       | 4 ++--
 spec/controllers/remote_follow_controller_spec.rb | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/models/remote_follow.rb b/app/models/remote_follow.rb
index c226cdb143..3da3ba0ae7 100644
--- a/app/models/remote_follow.rb
+++ b/app/models/remote_follow.rb
@@ -6,7 +6,7 @@ class RemoteFollow
   attr_accessor :acct, :addressable_template
 
   def initialize(attrs = {})
-    @acct = attrs[:acct].strip unless attrs[:acct].nil?
+    @acct = attrs[:acct].gsub(/\A@/, '').strip unless attrs[:acct].nil?
   end
 
   def valid?
@@ -15,7 +15,7 @@ class RemoteFollow
   end
 
   def subscribe_address_for(account)
-    addressable_template.expand(uri: account.to_webfinger_s).to_s
+    addressable_template.expand(uri: account.local_username_and_domain).to_s
   end
 
   private
diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb
index ce04e2c432..915c86f8ea 100644
--- a/spec/controllers/remote_follow_controller_spec.rb
+++ b/spec/controllers/remote_follow_controller_spec.rb
@@ -66,7 +66,7 @@ describe RemoteFollowController do
         end
 
         it 'redirects to the remote location' do
-          address = "http://example.com/follow_me?acct=acct%3Atest_user%40#{Rails.configuration.x.local_domain}"
+          address = "http://example.com/follow_me?acct=test_user%40#{Rails.configuration.x.local_domain}"
 
           expect(response).to redirect_to(address)
         end
-- 
GitLab