Feature #36303
closedInclude avatar URL in Users API
0%
Description
I suggest including the avatar URL in the user's API.
{
"user": {
"id": 1,
"login": "admin",
"firstname": "Redmine",
"lastname": "Admin",
"created_on": "2006-07-19T17:12:21Z",
"updated_on": "2021-12-13T10:03:30Z",
"last_login_on": "2021-12-11T07:06:41Z",
"passwd_changed_on": null,
"avatar_url": "https://www.gravatar.com/avatar/982b6086063a22d85509455d8e31cca2"
}
}
Currently, it is difficult to display a user's Gravatar image when developing an application using the REST API. This is because Users API response doesn't include Gravatar URL. Although you can generate a Gravatar URL if you know the email address, email addresses are usually hidden for non-admin users.
This feature is very useful for developers who are building Redmine clients using REST API.
Files
Related issues
Updated by Yuichi HARADA almost 3 years ago
- File 36303.patch 36303.patch added
With the following patch, get the avatar URL even by non-admin users.
diff --git a/app/views/users/index.api.rsb b/app/views/users/index.api.rsb
index 4b51ba47a8..cd89a6bf9c 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})
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 a19a8c637a..c30947512e 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})
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?
Updated by Go MAEDA almost 3 years ago
- File 36303-v2.patch 36303-v2.patch added
- Target version set to Candidate for next major release
Updated the patch to check if the setting "Use Gravatar user icons" is enabled.
Updated by Go MAEDA almost 3 years ago
- Target version changed from Candidate for next major release to 5.0.0
Setting the target version to 5.0.0.
Updated by Go MAEDA almost 3 years ago
The patch should respect Setting.Setting.gravatar_default
. Otherwise, the icon you see in Redmine and the icon you get by accessing the avatar_url
returned by the API will be different.
Updated by Yuichi HARADA almost 3 years ago
Go MAEDA wrote:
The patch should respect
Setting.Setting.gravatar_default
. Otherwise, the icon you see in Redmine and the icon you get by accessing theavatar_url
returned by the API will be different.
You're right. Setting.Setting.gravatar_default
should be respected.
Updated by Go MAEDA almost 3 years ago
- File 36303-v3.patch 36303-v3.patch added
Updated the patch to respect Setting.Setting.gravatar_default
.
Updated by Go MAEDA almost 3 years ago
- Subject changed from Include avatar URL in user API to Include avatar URL in Users API
- Status changed from New to Closed
- Assignee set to Go MAEDA
- Resolution set to Fixed
Committed the patch.
Updated by Alex Moroz over 2 years ago
Crashes here, if user is Anonimous (user.mail = nil)
api.avatar_url gravatar_url(@user.mail, {rating: nil, size: nil})
Updated by Go MAEDA over 2 years ago
- Related to Defect #37157: Internal server error when trying to retrieve AnonymousUser's information via Users API added