mirror of
https://github.com/redmine/redmine.git
synced 2025-11-06 13:25:44 +01:00
Add avatar_server_url configuration option in order to support Libravatar (#9112).
Patch by Go MAEDA. git-svn-id: http://svn.redmine.org/redmine/trunk@18124 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -1507,7 +1507,7 @@ module ApplicationHelper
|
|||||||
# Returns a link to edit user's avatar if avatars are enabled
|
# Returns a link to edit user's avatar if avatars are enabled
|
||||||
def avatar_edit_link(user, options={})
|
def avatar_edit_link(user, options={})
|
||||||
if Setting.gravatar_enabled?
|
if Setting.gravatar_enabled?
|
||||||
url = "https://gravatar.com"
|
url = Redmine::Configuration['avatar_server_url']
|
||||||
link_to avatar(user, {:title => l(:button_edit)}.merge(options)), url, :target => '_blank'
|
link_to avatar(user, {:title => l(:button_edit)}.merge(options)), url, :target => '_blank'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -19,7 +19,8 @@
|
|||||||
|
|
||||||
<p><%= setting_select :user_format, @options[:user_format] %></p>
|
<p><%= setting_select :user_format, @options[:user_format] %></p>
|
||||||
|
|
||||||
<p><%= setting_check_box :gravatar_enabled, :data => {:enables => '#settings_gravatar_default'} %></p>
|
<p><%= setting_check_box :gravatar_enabled, :data => {:enables => '#settings_gravatar_default'} %>
|
||||||
|
<em class="info"><%= t(:text_avatar_server_config_html, :url => Redmine::Configuration['avatar_server_url']) %></em></p>
|
||||||
|
|
||||||
<p><%= setting_select :gravatar_default, gravatar_default_setting_options, :blank => :label_none %></p>
|
<p><%= setting_select :gravatar_default, gravatar_default_setting_options, :blank => :label_none %></p>
|
||||||
|
|
||||||
|
|||||||
@@ -209,6 +209,21 @@ default:
|
|||||||
# allowed values: :memory, :file, :memcache
|
# allowed values: :memory, :file, :memcache
|
||||||
#openid_authentication_store: :memory
|
#openid_authentication_store: :memory
|
||||||
|
|
||||||
|
# URL of the avatar server
|
||||||
|
#
|
||||||
|
# By default, Redmine uses Gravatar as the avatar server for displaying
|
||||||
|
# user icons. You can switch to another Gravatar-compatible server such
|
||||||
|
# as Libravatar and opensource servers listed on
|
||||||
|
# https://wiki.libravatar.org/running_your_own/
|
||||||
|
#
|
||||||
|
# URL of each avatar is: #{avatar_server_url}/avatar/#{hash}
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
# avatar_server_url: https://www.gravatar.com # default
|
||||||
|
# avatar_server_url: https://seccdn.libravatar.org
|
||||||
|
#
|
||||||
|
avatar_server_url:
|
||||||
|
|
||||||
# specific configuration options for production environment
|
# specific configuration options for production environment
|
||||||
# that overrides the default ones
|
# that overrides the default ones
|
||||||
production:
|
production:
|
||||||
|
|||||||
@@ -1202,6 +1202,8 @@ en:
|
|||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: This project is closed and read-only.
|
||||||
text_turning_multiple_off: "If you disable multiple values, multiple values will be removed in order to preserve only one value per item."
|
text_turning_multiple_off: "If you disable multiple values, multiple values will be removed in order to preserve only one value per item."
|
||||||
text_select_apply_tracker: "Select tracker"
|
text_select_apply_tracker: "Select tracker"
|
||||||
|
text_avatar_server_config_html: The current avatar server is <a href="%{url}">%{url}</a>. You can configure it in config/configuration.yml.
|
||||||
|
|
||||||
|
|
||||||
default_role_manager: Manager
|
default_role_manager: Manager
|
||||||
default_role_developer: Developer
|
default_role_developer: Developer
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ module GravatarHelper
|
|||||||
|
|
||||||
# Returns the base Gravatar URL for the given email hash
|
# Returns the base Gravatar URL for the given email hash
|
||||||
def gravatar_api_url(hash)
|
def gravatar_api_url(hash)
|
||||||
'https://www.gravatar.com/avatar/' + hash.to_s
|
+"#{Redmine::Configuration['avatar_server_url']}/avatar/#{hash}"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Return the gravatar URL for the given email address.
|
# Return the gravatar URL for the given email address.
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ module Redmine
|
|||||||
|
|
||||||
# Configuration default values
|
# Configuration default values
|
||||||
@defaults = {
|
@defaults = {
|
||||||
|
'avatar_server_url' => 'https://www.gravatar.com',
|
||||||
'email_delivery' => nil,
|
'email_delivery' => nil,
|
||||||
'max_concurrent_ajax_uploads' => 2
|
'max_concurrent_ajax_uploads' => 2
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -365,11 +365,13 @@ class MyControllerTest < Redmine::ControllerTest
|
|||||||
|
|
||||||
def test_my_account_with_avatar_enabled_should_link_to_edit_avatar
|
def test_my_account_with_avatar_enabled_should_link_to_edit_avatar
|
||||||
with_settings :gravatar_enabled => '1' do
|
with_settings :gravatar_enabled => '1' do
|
||||||
|
Redmine::Configuration.with 'avatar_server_url' => 'https://gravatar.com' do
|
||||||
get :account
|
get :account
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select 'a[href=?] img.gravatar', 'https://gravatar.com'
|
assert_select 'a[href=?] img.gravatar', 'https://gravatar.com'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_my_account_should_not_show_language_select_with_force_default_language_for_loggedin
|
def test_my_account_should_not_show_language_select_with_force_default_language_for_loggedin
|
||||||
with_settings :force_default_language_for_loggedin => '1' do
|
with_settings :force_default_language_for_loggedin => '1' do
|
||||||
|
|||||||
@@ -1529,6 +1529,21 @@ RAW
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_avatar_server_url
|
||||||
|
to_test = {
|
||||||
|
'https://www.gravatar.com' => %r|https://www.gravatar.com/avatar/\h{32}|,
|
||||||
|
'https://seccdn.libravatar.org' => %r|https://seccdn.libravatar.org/avatar/\h{32}|,
|
||||||
|
'http://localhost:8080' => %r|http://localhost:8080/avatar/\h{32}|,
|
||||||
|
}
|
||||||
|
with_settings :gravatar_enabled => '1' do
|
||||||
|
to_test.each do |url, expected|
|
||||||
|
Redmine::Configuration.with 'avatar_server_url' => url do
|
||||||
|
assert_match expected, avatar('<jsmith@somenet.foo>')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_link_to_user
|
def test_link_to_user
|
||||||
user = User.find(2)
|
user = User.find(2)
|
||||||
result = link_to("John Smith", "/users/2", :class => "user active")
|
result = link_to("John Smith", "/users/2", :class => "user active")
|
||||||
|
|||||||
Reference in New Issue
Block a user