]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/users_controller.rb
Handle errors checking for gravatars
[rails.git] / app / controllers / users_controller.rb
index 6aa98f7ee508b1a083132b567b5305d07aedeaa3..e4dd1b2dc96247c30d612909f2d35502a65c311c 100644 (file)
@@ -753,11 +753,17 @@ class UsersController < ApplicationController
     # code from example https://en.gravatar.com/site/implement/images/ruby/
     return false if user.avatar.attached?
 
-    hash = Digest::MD5.hexdigest(user.email.downcase)
-    url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
-    response = OSM.http_client.get(URI.parse(url))
+    begin
+      hash = Digest::MD5.hexdigest(user.email.downcase)
+      url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
+      response = OSM.http_client.get(URI.parse(url))
+      available = response.success?
+    rescue StandardError
+      available = false
+    end
+
     oldsetting = user.image_use_gravatar
-    user.image_use_gravatar = response.success?
+    user.image_use_gravatar = available
     oldsetting != user.image_use_gravatar
   end