]> cat aescling's git repositories - mastodon.git/commitdiff
Fix account URI when updating ActivityPub account (#7488)
authorWiktor <wiktor@metacode.biz>
Mon, 14 May 2018 20:56:45 +0000 (22:56 +0200)
committerEugen Rochko <eugen@zeonfederated.com>
Mon, 14 May 2018 20:56:45 +0000 (22:56 +0200)
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]:
https://github.com/tootsuite/mastodon/blob/03b69ebc450efc07246bd64204276941b7ede3fc/app/services/resolve_account_service.rb#L121

app/services/activitypub/process_account_service.rb

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