Fix account URI when updating ActivityPub account (#7488)

Updates account `uri` field on each call to `update_account` instead of
only once during `create_account` to mirror the same behavior in OStatus
`ResolveAccountService` class [0].

ActivityPub accounts are identified using `@username` and `@domain` pair
instead of URI since #6842.

This fixes #7479: a bug when the account identified by `@username` and
`@domain` changes its URI.

[0]:
03b69ebc45/app/services/resolve_account_service.rb (L121)
This commit is contained in:
Wiktor 2018-05-14 22:56:45 +02:00 committed by Eugen Rochko
parent 03b69ebc45
commit 7fe2993b87

View File

@ -44,7 +44,6 @@ class ActivityPub::ProcessAccountService < BaseService
@account.protocol = :activitypub @account.protocol = :activitypub
@account.username = @username @account.username = @username
@account.domain = @domain @account.domain = @domain
@account.uri = @uri
@account.suspended = true if auto_suspend? @account.suspended = true if auto_suspend?
@account.silenced = true if auto_silence? @account.silenced = true if auto_silence?
@account.private_key = nil @account.private_key = nil
@ -67,6 +66,7 @@ class ActivityPub::ProcessAccountService < BaseService
@account.followers_url = @json['followers'] || '' @account.followers_url = @json['followers'] || ''
@account.featured_collection_url = @json['featured'] || '' @account.featured_collection_url = @json['featured'] || ''
@account.url = url || @uri @account.url = url || @uri
@account.uri = @uri
@account.display_name = @json['name'] || '' @account.display_name = @json['name'] || ''
@account.note = @json['summary'] || '' @account.note = @json['summary'] || ''
@account.locked = @json['manuallyApprovesFollowers'] || false @account.locked = @json['manuallyApprovesFollowers'] || false