From 5d0798c0d1b970a4d34b61906907014c3c304d51 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Fri, 21 Jan 2022 00:31:11 +0000 Subject: [PATCH] Include avatar URL in Users API (#36303). 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 | 1 + app/views/users/show.api.rsb | 1 + test/integration/api_test/users_test.rb | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/views/users/index.api.rsb b/app/views/users/index.api.rsb index 4b51ba47a..b617ea91c 100644 --- a/app/views/users/index.api.rsb +++ b/app/views/users/index.api.rsb @@ -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 diff --git a/app/views/users/show.api.rsb b/app/views/users/show.api.rsb index a19a8c637..f6a323265 100644 --- a/app/views/users/show.api.rsb +++ b/app/views/users/show.api.rsb @@ -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? diff --git a/test/integration/api_test/users_test.rb b/test/integration/api_test/users_test.rb index 9bf91c61d..12198db19 100644 --- a/test/integration/api_test/users_test.rb +++ b/test/integration/api_test/users_test.rb @@ -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 -- 2.39.5