discourse/app/jobs/regular/update_gravatar.rb
Sam de6b585368 minor, bypass gravatar update if user does not match
this protects against a race condition that can happen when a user record
is destroyed reasonably quickly
2018-10-23 12:20:41 +11:00

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