Support remote follow request providing URL instead of acct

This commit is contained in:
Eugen Rochko 2016-12-29 17:23:27 +01:00
parent d7dc84439c
commit 8724094ed0
3 changed files with 24 additions and 2 deletions

View file

@ -337,6 +337,10 @@
overflow: hidden;
margin-bottom: 15px;
&:last-child {
margin-bottom: 0;
}
& > div {
float: left;
margin-right: 10px;

View file

@ -6,7 +6,14 @@ class AuthorizeFollowController < ApplicationController
before_action :authenticate_user!
def new
@account = FollowRemoteAccountService.new.call(params[:acct])
uri = Addressable::URI.parse(params[:acct])
if uri.path && %w(http https).include?(uri.scheme)
set_account_from_url
else
set_account_from_acct
end
render :error if @account.nil?
end
@ -21,4 +28,14 @@ class AuthorizeFollowController < ApplicationController
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermitted
render :error
end
private
def set_account_from_url
@account = FetchRemoteAccountService.new.call(params[:acct])
end
def set_account_from_acct
@account = FollowRemoteAccountService.new.call(params[:acct])
end
end

View file

@ -14,7 +14,8 @@
%strong= display_name(@account)
%span= "@#{@account.acct}"
.account__header__content= Formatter.instance.simplified_format(@account)
- unless @account.note.blank?
.account__header__content= Formatter.instance.simplified_format(@account)
= form_tag authorize_follow_path, method: :post, class: 'simple_form' do
= hidden_field_tag :acct, @account.acct