a gravatar exists and enable then if the user hasn't uploaded a picture.
user = token.user
user.status = "active"
user.email_valid = true
+ gravatar_enable(user)
user.save!
referer = token.referer
token.destroy
@user.email = @user.new_email
@user.new_email = nil
@user.email_valid = true
+ gravatar_enable(@user)
if @user.save
flash[:notice] = t "user.confirm_email.success"
else
!blocked
end
+
+ ##
+ # check if this user has a gravatar and set the user pref is true
+ def gravatar_enable(user)
+ # code from example https://en.gravatar.com/site/implement/images/ruby/
+ return if user.image.present?
+ 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))
+ oldsetting = user.image_use_gravatar
+ user.image_use_gravatar = response.success?
+ if oldsetting != user.image_use_gravatar
+ flash[:warning] = if user.image_use_gravatar
+ t "user.account.gravatar.enabled"
+ else
+ t "user.account.gravatar.disabled"
+ end
+ end
+ end
end
gravatar: "Use Gravatar"
link: "http://wiki.openstreetmap.org/wiki/Gravatar"
link text: "what is this?"
+ disabled: "Gravatar disabled!"
+ enabled: "Gravatar enabled!"
new image: "Add an image"
keep image: "Keep the current image"
delete image: "Remove the current image"
--- /dev/null
+class SetDefaultGravatarToFalseForPrivacy < ActiveRecord::Migration
+ def up
+ change_column :users, :image_use_gravatar, :boolean, :default => false
+ end
+
+ def down
+ change_column :users, :image_use_gravatar, :boolean, :default => true
+ end
+end
assert_select "contributor-terms", :count => 1 do
assert_select "[agreed='true']"
end
- assert_select "img", :count => 1
+ assert_select "img", :count => 0
assert_select "roles", :count => 1 do
assert_select "role", :count => 0
end
assert_select "contributor-terms", :count => 1 do
assert_select "[agreed='true'][pd='false']"
end
- assert_select "img", :count => 1
+ assert_select "img", :count => 0
assert_select "roles", :count => 1 do
assert_select "role", :count => 0
end