mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 05:23:43 +08:00
de6b585368
this protects against a race condition that can happen when a user record is destroyed reasonably quickly
21 lines
478 B
Ruby
21 lines
478 B
Ruby
module Jobs
|
|
|
|
class UpdateGravatar < Jobs::Base
|
|
|
|
sidekiq_options queue: 'low'
|
|
|
|
def execute(args)
|
|
user = User.find_by(id: args[:user_id])
|
|
avatar = UserAvatar.find_by(id: args[:avatar_id])
|
|
|
|
if user && avatar && avatar.user&.id == user.id
|
|
avatar.update_gravatar!
|
|
if !user.uploaded_avatar_id && avatar.gravatar_upload_id
|
|
user.update_column(:uploaded_avatar_id, avatar.gravatar_upload_id)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|