forked from cybrespace/mastodon
Rename ResolveRemoteAccountService to ResolveAccountService (#6327)
The service used to be named ResolveRemoteAccountService resolves local accounts as well.
This commit is contained in:
parent
17cecd75ca
commit
613e7c7521
|
@ -28,7 +28,7 @@ class ActivityPub::InboxesController < Api::BaseController
|
||||||
def upgrade_account
|
def upgrade_account
|
||||||
if signed_request_account.ostatus?
|
if signed_request_account.ostatus?
|
||||||
signed_request_account.update(last_webfingered_at: nil)
|
signed_request_account.update(last_webfingered_at: nil)
|
||||||
ResolveRemoteAccountWorker.perform_async(signed_request_account.acct)
|
ResolveAccountWorker.perform_async(signed_request_account.acct)
|
||||||
end
|
end
|
||||||
|
|
||||||
Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) if signed_request_account.subscribed?
|
Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) if signed_request_account.subscribed?
|
||||||
|
|
|
@ -41,7 +41,7 @@ class AuthorizeFollowsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def account_from_remote_follow
|
def account_from_remote_follow
|
||||||
ResolveRemoteAccountService.new.call(acct_without_prefix)
|
ResolveAccountService.new.call(acct_without_prefix)
|
||||||
end
|
end
|
||||||
|
|
||||||
def acct_param_is_url?
|
def acct_param_is_url?
|
||||||
|
|
|
@ -114,7 +114,7 @@ module SignatureVerification
|
||||||
|
|
||||||
def account_from_key_id(key_id)
|
def account_from_key_id(key_id)
|
||||||
if key_id.start_with?('acct:')
|
if key_id.start_with?('acct:')
|
||||||
ResolveRemoteAccountService.new.call(key_id.gsub(/\Aacct:/, ''))
|
ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, ''))
|
||||||
elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
|
elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
|
||||||
account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account)
|
account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account)
|
||||||
account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false)
|
account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false)
|
||||||
|
|
|
@ -163,7 +163,7 @@ class Account < ApplicationRecord
|
||||||
|
|
||||||
def refresh!
|
def refresh!
|
||||||
return if local?
|
return if local?
|
||||||
ResolveRemoteAccountService.new.call(acct)
|
ResolveAccountService.new.call(acct)
|
||||||
end
|
end
|
||||||
|
|
||||||
def unsuspend!
|
def unsuspend!
|
||||||
|
|
|
@ -20,6 +20,6 @@ class Form::Migration
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_account
|
def set_account
|
||||||
self.account = (ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?)
|
self.account = (ResolveAccountService.new.call(acct) if account.nil? && acct.present?)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ class AccountSearchService < BaseService
|
||||||
return [] if query_blank_or_hashtag? || limit < 1
|
return [] if query_blank_or_hashtag? || limit < 1
|
||||||
|
|
||||||
if resolving_non_matching_remote_account?
|
if resolving_non_matching_remote_account?
|
||||||
[ResolveRemoteAccountService.new.call("#{query_username}@#{query_domain}")].compact
|
[ResolveAccountService.new.call("#{query_username}@#{query_domain}")].compact
|
||||||
else
|
else
|
||||||
search_results_and_exact_match.compact.uniq.slice(0, limit)
|
search_results_and_exact_match.compact.uniq.slice(0, limit)
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,6 +18,6 @@ module AuthorExtractor
|
||||||
acct = "#{username}@#{domain}"
|
acct = "#{username}@#{domain}"
|
||||||
end
|
end
|
||||||
|
|
||||||
ResolveRemoteAccountService.new.call(acct, update_profile)
|
ResolveAccountService.new.call(acct, update_profile)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ class FollowService < BaseService
|
||||||
# @param [true, false, nil] reblogs Whether or not to show reblogs, defaults to true
|
# @param [true, false, nil] reblogs Whether or not to show reblogs, defaults to true
|
||||||
def call(source_account, uri, reblogs: nil)
|
def call(source_account, uri, reblogs: nil)
|
||||||
reblogs = true if reblogs.nil?
|
reblogs = true if reblogs.nil?
|
||||||
target_account = uri.is_a?(Account) ? uri : ResolveRemoteAccountService.new.call(uri)
|
target_account = uri.is_a?(Account) ? uri : ResolveAccountService.new.call(uri)
|
||||||
|
|
||||||
raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended?
|
raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended?
|
||||||
raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account)
|
raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account)
|
||||||
|
|
|
@ -16,7 +16,7 @@ class ProcessMentionsService < BaseService
|
||||||
|
|
||||||
if mention_undeliverable?(status, mentioned_account)
|
if mention_undeliverable?(status, mentioned_account)
|
||||||
begin
|
begin
|
||||||
mentioned_account = resolve_remote_account_service.call($1)
|
mentioned_account = resolve_account_service.call($1)
|
||||||
rescue Goldfinger::Error, HTTP::Error
|
rescue Goldfinger::Error, HTTP::Error
|
||||||
mentioned_account = nil
|
mentioned_account = nil
|
||||||
end
|
end
|
||||||
|
@ -63,7 +63,7 @@ class ProcessMentionsService < BaseService
|
||||||
).as_json).sign!(status.account))
|
).as_json).sign!(status.account))
|
||||||
end
|
end
|
||||||
|
|
||||||
def resolve_remote_account_service
|
def resolve_account_service
|
||||||
ResolveRemoteAccountService.new
|
ResolveAccountService.new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class ResolveRemoteAccountService < BaseService
|
class ResolveAccountService < BaseService
|
||||||
include OStatus2::MagicKey
|
include OStatus2::MagicKey
|
||||||
include JsonLdHelper
|
include JsonLdHelper
|
||||||
|
|
|
@ -7,7 +7,7 @@ class Import::RelationshipWorker
|
||||||
|
|
||||||
def perform(account_id, target_account_uri, relationship)
|
def perform(account_id, target_account_uri, relationship)
|
||||||
from_account = Account.find(account_id)
|
from_account = Account.find(account_id)
|
||||||
target_account = ResolveRemoteAccountService.new.call(target_account_uri)
|
target_account = ResolveAccountService.new.call(target_account_uri)
|
||||||
|
|
||||||
return if target_account.nil?
|
return if target_account.nil?
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class ResolveRemoteAccountWorker
|
class ResolveAccountWorker
|
||||||
include Sidekiq::Worker
|
include Sidekiq::Worker
|
||||||
|
|
||||||
sidekiq_options queue: 'pull', unique: :until_executed
|
sidekiq_options queue: 'pull', unique: :until_executed
|
||||||
|
|
||||||
def perform(uri)
|
def perform(uri)
|
||||||
ResolveRemoteAccountService.new.call(uri)
|
ResolveAccountService.new.call(uri)
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -30,7 +30,7 @@ describe AuthorizeFollowsController do
|
||||||
|
|
||||||
it 'renders error when account cant be found' do
|
it 'renders error when account cant be found' do
|
||||||
service = double
|
service = double
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
allow(service).to receive(:call).with('missing@hostname').and_return(nil)
|
allow(service).to receive(:call).with('missing@hostname').and_return(nil)
|
||||||
|
|
||||||
get :show, params: { acct: 'acct:missing@hostname' }
|
get :show, params: { acct: 'acct:missing@hostname' }
|
||||||
|
@ -54,7 +54,7 @@ describe AuthorizeFollowsController do
|
||||||
it 'sets account from acct uri' do
|
it 'sets account from acct uri' do
|
||||||
account = Account.new
|
account = Account.new
|
||||||
service = double
|
service = double
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
allow(service).to receive(:call).with('found@hostname').and_return(account)
|
allow(service).to receive(:call).with('found@hostname').and_return(account)
|
||||||
|
|
||||||
get :show, params: { acct: 'acct:found@hostname' }
|
get :show, params: { acct: 'acct:found@hostname' }
|
||||||
|
|
|
@ -17,7 +17,7 @@ RSpec.describe Settings::ImportsController, type: :controller do
|
||||||
describe 'POST #create' do
|
describe 'POST #create' do
|
||||||
it 'redirects to settings path with successful following import' do
|
it 'redirects to settings path with successful following import' do
|
||||||
service = double(call: nil)
|
service = double(call: nil)
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
post :create, params: {
|
post :create, params: {
|
||||||
import: {
|
import: {
|
||||||
type: 'following',
|
type: 'following',
|
||||||
|
@ -30,7 +30,7 @@ RSpec.describe Settings::ImportsController, type: :controller do
|
||||||
|
|
||||||
it 'redirects to settings path with successful blocking import' do
|
it 'redirects to settings path with successful blocking import' do
|
||||||
service = double(call: nil)
|
service = double(call: nil)
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
post :create, params: {
|
post :create, params: {
|
||||||
import: {
|
import: {
|
||||||
type: 'blocking',
|
type: 'blocking',
|
||||||
|
|
|
@ -185,8 +185,8 @@ RSpec.describe Account, type: :model do
|
||||||
expect(account.refresh!).to be_nil
|
expect(account.refresh!).to be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'calls not ResolveRemoteAccountService#call' do
|
it 'calls not ResolveAccountService#call' do
|
||||||
expect_any_instance_of(ResolveRemoteAccountService).not_to receive(:call).with(acct)
|
expect_any_instance_of(ResolveAccountService).not_to receive(:call).with(acct)
|
||||||
account.refresh!
|
account.refresh!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -194,8 +194,8 @@ RSpec.describe Account, type: :model do
|
||||||
context 'domain is present' do
|
context 'domain is present' do
|
||||||
let(:domain) { 'example.com' }
|
let(:domain) { 'example.com' }
|
||||||
|
|
||||||
it 'calls ResolveRemoteAccountService#call' do
|
it 'calls ResolveAccountService#call' do
|
||||||
expect_any_instance_of(ResolveRemoteAccountService).to receive(:call).with(acct).once
|
expect_any_instance_of(ResolveAccountService).to receive(:call).with(acct).once
|
||||||
account.refresh!
|
account.refresh!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -123,7 +123,7 @@ describe AccountSearchService do
|
||||||
describe 'when there is a domain but no exact match' do
|
describe 'when there is a domain but no exact match' do
|
||||||
it 'follows the remote account when resolve is true' do
|
it 'follows the remote account when resolve is true' do
|
||||||
service = double(call: nil)
|
service = double(call: nil)
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
|
|
||||||
results = subject.call('newuser@remote.com', 10, nil, resolve: true)
|
results = subject.call('newuser@remote.com', 10, nil, resolve: true)
|
||||||
expect(service).to have_received(:call).with('newuser@remote.com')
|
expect(service).to have_received(:call).with('newuser@remote.com')
|
||||||
|
@ -131,7 +131,7 @@ describe AccountSearchService do
|
||||||
|
|
||||||
it 'does not follow the remote account when resolve is false' do
|
it 'does not follow the remote account when resolve is false' do
|
||||||
service = double(call: nil)
|
service = double(call: nil)
|
||||||
allow(ResolveRemoteAccountService).to receive(:new).and_return(service)
|
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||||
|
|
||||||
results = subject.call('newuser@remote.com', 10, nil, resolve: false)
|
results = subject.call('newuser@remote.com', 10, nil, resolve: false)
|
||||||
expect(service).not_to have_received(:call)
|
expect(service).not_to have_received(:call)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe ResolveRemoteAccountService do
|
RSpec.describe ResolveAccountService do
|
||||||
subject { described_class.new }
|
subject { described_class.new }
|
||||||
|
|
||||||
before do
|
before do
|
Loading…
Reference in New Issue