Commit 1ef1a4ae6e8f91e78e57ccd9d458ed2806f9bf77
Exists in
master
and in
4 other branches
Merge pull request #1239 from tsigo/disable_gravatar
Allow disabling Gravatars in gitlab.yml settings
Showing
4 changed files
with
43 additions
and
11 deletions
Show diff stats
app/helpers/application_helper.rb
@@ -2,10 +2,13 @@ require 'digest/md5' | @@ -2,10 +2,13 @@ require 'digest/md5' | ||
2 | module ApplicationHelper | 2 | module ApplicationHelper |
3 | 3 | ||
4 | def gravatar_icon(user_email = '', size = 40) | 4 | def gravatar_icon(user_email = '', size = 40) |
5 | - return unless user_email | ||
6 | - gravatar_host = request.ssl? ? "https://secure.gravatar.com" : "http://www.gravatar.com" | ||
7 | - user_email.strip! | ||
8 | - "#{gravatar_host}/avatar/#{Digest::MD5.hexdigest(user_email.downcase)}?s=#{size}&d=identicon" | 5 | + if Gitlab.config.disable_gravatar? || user_email.blank? |
6 | + 'no_avatar.png' | ||
7 | + else | ||
8 | + gravatar_prefix = request.ssl? ? "https://secure" : "http://www" | ||
9 | + user_email.strip! | ||
10 | + "#{gravatar_prefix}.gravatar.com/avatar/#{Digest::MD5.hexdigest(user_email.downcase)}?s=#{size}&d=identicon" | ||
11 | + end | ||
9 | end | 12 | end |
10 | 13 | ||
11 | def request_protocol | 14 | def request_protocol |
config/gitlab.yml.example
1 | -# # # # # # # # # # # # # # # # # # | 1 | +# # # # # # # # # # # # # # # # # # |
2 | # Gitlab application config file # | 2 | # Gitlab application config file # |
3 | # # # # # # # # # # # # # # # # # # | 3 | # # # # # # # # # # # # # # # # # # |
4 | 4 | ||
@@ -19,14 +19,14 @@ email: | @@ -19,14 +19,14 @@ email: | ||
19 | 19 | ||
20 | # Application specific settings | 20 | # Application specific settings |
21 | # Like default project limit for user etc | 21 | # Like default project limit for user etc |
22 | -app: | ||
23 | - default_projects_limit: 10 | 22 | +app: |
23 | + default_projects_limit: 10 | ||
24 | # backup_path: "/vol/backups" # default: Rails.root + backups/ | 24 | # backup_path: "/vol/backups" # default: Rails.root + backups/ |
25 | # backup_keep_time: 604800 # default: 0 (forever) (in seconds) | 25 | # backup_keep_time: 604800 # default: 0 (forever) (in seconds) |
26 | + # disable_gravatar: true # default: false - Disable user avatars from Gravatar.com | ||
26 | 27 | ||
27 | - | ||
28 | -# | ||
29 | -# 2. Advanced settings: | 28 | +# |
29 | +# 2. Advanced settings: | ||
30 | # ========================== | 30 | # ========================== |
31 | 31 | ||
32 | # Git Hosting configuration | 32 | # Git Hosting configuration |
@@ -39,7 +39,6 @@ git_host: | @@ -39,7 +39,6 @@ git_host: | ||
39 | receive_pack: true | 39 | receive_pack: true |
40 | # port: 22 | 40 | # port: 22 |
41 | 41 | ||
42 | - | ||
43 | # Git settings | 42 | # Git settings |
44 | # Use default values unless you understand it | 43 | # Use default values unless you understand it |
45 | git: | 44 | git: |
config/initializers/1_settings.rb
@@ -111,5 +111,9 @@ class Settings < Settingslogic | @@ -111,5 +111,9 @@ class Settings < Settingslogic | ||
111 | def backup_keep_time | 111 | def backup_keep_time |
112 | app['backup_keep_time'] || 0 | 112 | app['backup_keep_time'] || 0 |
113 | end | 113 | end |
114 | + | ||
115 | + def disable_gravatar? | ||
116 | + app['disable_gravatar'] || false | ||
117 | + end | ||
114 | end | 118 | end |
115 | end | 119 | end |
@@ -0,0 +1,26 @@ | @@ -0,0 +1,26 @@ | ||
1 | +require 'spec_helper' | ||
2 | + | ||
3 | +describe ApplicationHelper do | ||
4 | + describe "gravatar_icon" do | ||
5 | + let(:user_email) { 'user@email.com' } | ||
6 | + | ||
7 | + it "should return a generic avatar path when Gravatar is disabled" do | ||
8 | + Gitlab.config.stub(:disable_gravatar?).and_return(true) | ||
9 | + gravatar_icon(user_email).should == 'no_avatar.png' | ||
10 | + end | ||
11 | + | ||
12 | + it "should return a generic avatar path when email is blank" do | ||
13 | + gravatar_icon('').should == 'no_avatar.png' | ||
14 | + end | ||
15 | + | ||
16 | + it "should use SSL when appropriate" do | ||
17 | + stub!(:request).and_return(double(:ssl? => true)) | ||
18 | + gravatar_icon(user_email).should match('https://secure.gravatar.com') | ||
19 | + end | ||
20 | + | ||
21 | + it "should accept a custom size" do | ||
22 | + stub!(:request).and_return(double(:ssl? => false)) | ||
23 | + gravatar_icon(user_email, 64).should match(/\?s=64/) | ||
24 | + end | ||
25 | + end | ||
26 | +end |