Skip to content
Snippets Groups Projects
Commit 0aa7f79c authored by Sergey Linnik's avatar Sergey Linnik
Browse files

allow customize gravatar url

parent 2c37fa38
No related branches found
No related tags found
1 merge request!2007allow customize gravatar url
require 'digest/md5' require 'digest/md5'
require 'uri'
   
module ApplicationHelper module ApplicationHelper
   
Loading
@@ -36,9 +37,9 @@ module ApplicationHelper
Loading
@@ -36,9 +37,9 @@ module ApplicationHelper
if Gitlab.config.disable_gravatar? || user_email.blank? if Gitlab.config.disable_gravatar? || user_email.blank?
'no_avatar.png' 'no_avatar.png'
else else
gravatar_prefix = request.ssl? ? "https://secure" : "http://www" gravatar_url = request.ssl? ? Gitlab.config.gravatar_ssl_url : Gitlab.config.gravatar_url
user_email.strip! user_email.strip!
"#{gravatar_prefix}.gravatar.com/avatar/#{Digest::MD5.hexdigest(user_email.downcase)}?s=#{size}&d=mm" sprintf(gravatar_url, {:hash => Digest::MD5.hexdigest(user_email.downcase), :email => URI.escape(user_email), :size => size})
end end
end end
   
Loading
Loading
Loading
@@ -24,6 +24,8 @@ app:
Loading
@@ -24,6 +24,8 @@ app:
# backup_path: "/vol/backups" # default: Rails.root + backups/ # backup_path: "/vol/backups" # default: Rails.root + backups/
# backup_keep_time: 604800 # default: 0 (forever) (in seconds) # backup_keep_time: 604800 # default: 0 (forever) (in seconds)
# disable_gravatar: true # default: false - Disable user avatars from Gravatar.com # disable_gravatar: true # default: false - Disable user avatars from Gravatar.com
# gravatar_url: "http://" # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm
# gravatar_ssl_url: "https://" # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm
   
   
# #
Loading
Loading
Loading
@@ -145,5 +145,14 @@ class Settings < Settingslogic
Loading
@@ -145,5 +145,14 @@ class Settings < Settingslogic
def disable_gravatar? def disable_gravatar?
app['disable_gravatar'] || false app['disable_gravatar'] || false
end end
def gravatar_url
app['gravatar_url'] || 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm'
end
def gravatar_ssl_url
app['gravatar_ssl_url'] || 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm'
end
end end
end end
Loading
@@ -51,14 +51,36 @@ describe ApplicationHelper do
Loading
@@ -51,14 +51,36 @@ describe ApplicationHelper do
gravatar_icon('').should == 'no_avatar.png' gravatar_icon('').should == 'no_avatar.png'
end end
   
it "should return default gravatar url" do
stub!(:request).and_return(double(:ssl? => false))
gravatar_icon(user_email).should match('http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118')
end
it "should use SSL when appropriate" do it "should use SSL when appropriate" do
stub!(:request).and_return(double(:ssl? => true)) stub!(:request).and_return(double(:ssl? => true))
gravatar_icon(user_email).should match('https://secure.gravatar.com') gravatar_icon(user_email).should match('https://secure.gravatar.com')
end end
   
it "should return custom gravatar path when gravatar_url is set" do
stub!(:request).and_return(double(:ssl? => false))
Gitlab.config.stub(:gravatar_url).and_return('http://example.local/?s=%{size}&hash=%{hash}')
gravatar_icon(user_email, 20).should == 'http://example.local/?s=20&hash=b58c6f14d292556214bd64909bcdb118'
end
it "should accept a custom size" do it "should accept a custom size" do
stub!(:request).and_return(double(:ssl? => false)) stub!(:request).and_return(double(:ssl? => false))
gravatar_icon(user_email, 64).should match(/\?s=64/) gravatar_icon(user_email, 64).should match(/\?s=64/)
end end
it "should use default size when size is wrong" do
stub!(:request).and_return(double(:ssl? => false))
gravatar_icon(user_email, nil).should match(/\?s=40/)
end
it "should be case insensitive" do
stub!(:request).and_return(double(:ssl? => false))
gravatar_icon(user_email).should == gravatar_icon(user_email.upcase + " ")
end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment