1
0
Fork 0
forked from gitea/nas

Merge remote-tracking branch 'parent/main' into upstream-20241006

This commit is contained in:
KMY 2024-10-05 09:10:58 +09:00
commit 66bed31dbe
226 changed files with 2688 additions and 1846 deletions

View file

@ -3,7 +3,6 @@
class ActivityPub::FetchRemoteActorService < BaseService
include JsonLdHelper
include DomainControlHelper
include WebfingerHelper
class Error < StandardError; end
@ -45,7 +44,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
private
def check_webfinger!
webfinger = webfinger!("acct:#{@username}@#{@domain}")
webfinger = Webfinger.new("acct:#{@username}@#{@domain}").perform
confirmed_username, confirmed_domain = split_acct(webfinger.subject)
if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
@ -54,7 +53,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
return
end
webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}")
webfinger = Webfinger.new("acct:#{confirmed_username}@#{confirmed_domain}").perform
@username, @domain = split_acct(webfinger.subject)
raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{@uri} (stopped at #{@username}@#{@domain})" unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?

View file

@ -2,6 +2,7 @@
class ActivityPub::ProcessCollectionService < BaseService
include JsonLdHelper
include DomainControlHelper
def call(body, actor, **options)
@account = actor
@ -73,6 +74,9 @@ class ActivityPub::ProcessCollectionService < BaseService
end
def verify_account!
return unless @json['signature'].is_a?(Hash)
return if domain_not_allowed?(@json['signature']['creator'])
@options[:relayed_through_actor] = @account
@account = ActivityPub::LinkedDataSignature.new(@json).verify_actor!
@account = nil unless @account.is_a?(Account)

View file

@ -16,12 +16,12 @@ class PurgeDomainService < BaseService
end
def purge_accounts!
Account.remote.where(domain: @domain).reorder(nil).find_each do |account|
Account.remote.where(domain: @domain).find_each do |account|
DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true)
end
end
def purge_emojis!
CustomEmoji.remote.where(domain: @domain).reorder(nil).find_each(&:destroy)
CustomEmoji.remote.where(domain: @domain).find_each(&:destroy)
end
end

View file

@ -2,7 +2,6 @@
class ResolveAccountService < BaseService
include DomainControlHelper
include WebfingerHelper
include Redisable
include Lockable
@ -81,7 +80,7 @@ class ResolveAccountService < BaseService
end
def process_webfinger!(uri)
@webfinger = webfinger!("acct:#{uri}")
@webfinger = Webfinger.new("acct:#{uri}").perform
confirmed_username, confirmed_domain = split_acct(@webfinger.subject)
if confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?
@ -91,7 +90,7 @@ class ResolveAccountService < BaseService
end
# Account doesn't match, so it may have been redirected
@webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}")
@webfinger = Webfinger.new("acct:#{confirmed_username}@#{confirmed_domain}").perform
@username, @domain = split_acct(@webfinger.subject)
raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{uri} (stopped at #{@username}@#{@domain})" unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?