]> source.dussan.org Git - redmine.git/commitdiff
Include avatar URL in Users API (#36303).
authorGo MAEDA <maeda@farend.jp>
Fri, 21 Jan 2022 00:31:11 +0000 (00:31 +0000)
committerGo MAEDA <maeda@farend.jp>
Fri, 21 Jan 2022 00:31:11 +0000 (00:31 +0000)
Contributed by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@21375 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/users/index.api.rsb
app/views/users/show.api.rsb
test/integration/api_test/users_test.rb

index 4b51ba47a82bb22860bbf71d2df79cfddf53affe..b617ea91c8e02fc887d11cca9e2fb67ae9ab23cc 100644 (file)
@@ -11,6 +11,7 @@ api.array :users, api_meta(:total_count => @user_count, :offset => @offset, :lim
       api.updated_on user.updated_on
       api.last_login_on     user.last_login_on
       api.passwd_changed_on user.passwd_changed_on
+      api.avatar_url gravatar_url(user.mail, {rating: nil, size: nil, default: Setting.gravatar_default}) if Setting.gravatar_enabled?
       api.twofa_scheme user.twofa_scheme
 
       render_api_custom_values user.visible_custom_field_values, api
index a19a8c637a539f6abf1d59cfc1ba86539ec164e4..f6a323265a0c3ea2b07be7b8d31e3cb84d6a9777 100644 (file)
@@ -9,6 +9,7 @@ api.user do
   api.updated_on @user.updated_on
   api.last_login_on     @user.last_login_on
   api.passwd_changed_on @user.passwd_changed_on
+  api.avatar_url gravatar_url(@user.mail, {rating: nil, size: nil, default: Setting.gravatar_default}) if Setting.gravatar_enabled?
   api.twofa_scheme      @user.twofa_scheme if User.current.admin? || (User.current == @user)
   api.api_key    @user.api_key if User.current.admin? || (User.current == @user)
   api.status     @user.status if User.current.admin?
index 9bf91c61ded2efd71badcd974235e56d839beb7c..12198db195c6abd937b119f41eb852ba3b385a97 100644 (file)
@@ -25,7 +25,11 @@ class Redmine::ApiTest::UsersTest < Redmine::ApiTest::Base
   test "GET /users.xml should return users" do
     users = User.active.order('login')
     users.last.update(twofa_scheme: 'totp')
-    get '/users.xml', :headers => credentials('admin')
+    Redmine::Configuration.with 'avatar_server_url' => 'https://gravatar.com' do
+      with_settings :gravatar_enabled => '1', :gravatar_default => 'mm' do
+        get '/users.xml', :headers => credentials('admin')
+      end
+    end
 
     assert_response :success
     assert_equal 'application/xml', response.media_type
@@ -38,6 +42,7 @@ class Redmine::ApiTest::UsersTest < Redmine::ApiTest::Base
 
           # No one has changed password.
           assert_select user_element, 'passwd_changed_on', :text => ''
+          assert_select user_element, 'avatar_url', :text => %r|\Ahttps://gravatar.com/avatar/\h{32}\?default=mm|
 
           if user == users.last
             assert_select user_element, 'twofa_scheme', :text => 'totp'
@@ -78,12 +83,17 @@ class Redmine::ApiTest::UsersTest < Redmine::ApiTest::Base
   end
 
   test "GET /users/:id.xml should return the user" do
-    get '/users/2.xml'
+    Redmine::Configuration.with 'avatar_server_url' => 'https://gravatar.com' do
+      with_settings :gravatar_enabled => '1', :gravatar_default => 'robohash' do
+        get '/users/2.xml'
+      end
+    end
 
     assert_response :success
     assert_select 'user id', :text => '2'
     assert_select 'user updated_on', :text => Time.zone.parse('2006-07-19T20:42:15Z').iso8601
     assert_select 'user passwd_changed_on', :text => ''
+    assert_select 'user avatar_url', :text => %r|\Ahttps://gravatar.com/avatar/\h{32}\?default=robohash|
   end
 
   test "GET /users/:id.json should return the user" do