Commit d5bce06d authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'feature/add-public-email-to-users-api' into 'master'

Feature/add public email to users api

Closes #39346

See merge request gitlab-org/gitlab-ce!21909
parents babb05a1 f920d996
---
title: Adds the user's public_email attribute to the API
merge_request: 21909
author: Alexis Reigel
type: added
...@@ -46,19 +46,21 @@ Example of response ...@@ -46,19 +46,21 @@ Example of response
"status": "success", "status": "success",
"tag": false, "tag": false,
"user": { "user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root",
"created_at": "2015-12-21T13:14:24.077Z",
"bio": null, "bio": null,
"created_at": "2016-08-11T07:09:20.351Z",
"id": 1,
"linkedin": "",
"location": null, "location": null,
"name": "Administrator", "public_email": "",
"skype": "", "skype": "",
"state": "active", "linkedin": "",
"twitter": "", "twitter": "",
"username": "root", "website_url": "",
"web_url": "http://localhost:3000/root", "organization": ""
"website_url": ""
} }
}, },
"environment": { "environment": {
...@@ -103,19 +105,21 @@ Example of response ...@@ -103,19 +105,21 @@ Example of response
"status": "success", "status": "success",
"tag": false, "tag": false,
"user": { "user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root",
"created_at": "2015-12-21T13:14:24.077Z",
"bio": null, "bio": null,
"created_at": "2016-08-11T07:09:20.351Z",
"id": 1,
"linkedin": "",
"location": null, "location": null,
"name": "Administrator", "public_email": "",
"skype": "", "skype": "",
"state": "active", "linkedin": "",
"twitter": "", "twitter": "",
"username": "root", "website_url": "",
"web_url": "http://localhost:3000/root", "organization": ""
"website_url": ""
} }
}, },
"environment": { "environment": {
...@@ -188,19 +192,20 @@ Example of response ...@@ -188,19 +192,20 @@ Example of response
"started_at": null, "started_at": null,
"finished_at": "2016-08-11T11:32:35.145Z", "finished_at": "2016-08-11T11:32:35.145Z",
"user": { "user": {
"id": 1,
"name": "Administrator", "name": "Administrator",
"username": "root", "username": "root",
"id": 1,
"state": "active", "state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://localhost:3000/root", "web_url": "http://gitlab.dev/root",
"created_at": "2016-08-11T07:09:20.351Z", "created_at": "2015-12-21T13:14:24.077Z",
"bio": null, "bio": null,
"location": null, "location": null,
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
"website_url": "" "website_url": "",
"organization": ""
}, },
"commit": { "commit": {
"id": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", "id": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
......
...@@ -53,18 +53,21 @@ Example of response ...@@ -53,18 +53,21 @@ Example of response
"tag": false, "tag": false,
"web_url": "https://example.com/foo/bar/-/jobs/6", "web_url": "https://example.com/foo/bar/-/jobs/6",
"user": { "user": {
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"bio": null,
"created_at": "2015-12-21T13:14:24.077Z",
"id": 1, "id": 1,
"linkedin": "",
"name": "Administrator", "name": "Administrator",
"skype": "",
"state": "active",
"twitter": "",
"username": "root", "username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root", "web_url": "http://gitlab.dev/root",
"website_url": "" "created_at": "2015-12-21T13:14:24.077Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": ""
} }
}, },
{ {
...@@ -109,18 +112,21 @@ Example of response ...@@ -109,18 +112,21 @@ Example of response
"tag": false, "tag": false,
"web_url": "https://example.com/foo/bar/-/jobs/7", "web_url": "https://example.com/foo/bar/-/jobs/7",
"user": { "user": {
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"bio": null,
"created_at": "2015-12-21T13:14:24.077Z",
"id": 1, "id": 1,
"linkedin": "",
"name": "Administrator", "name": "Administrator",
"skype": "",
"state": "active",
"twitter": "",
"username": "root", "username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root", "web_url": "http://gitlab.dev/root",
"website_url": "" "created_at": "2015-12-21T13:14:24.077Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": ""
} }
} }
] ]
...@@ -180,18 +186,21 @@ Example of response ...@@ -180,18 +186,21 @@ Example of response
"tag": false, "tag": false,
"web_url": "https://example.com/foo/bar/-/jobs/6", "web_url": "https://example.com/foo/bar/-/jobs/6",
"user": { "user": {
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"bio": null,
"created_at": "2015-12-21T13:14:24.077Z",
"id": 1, "id": 1,
"linkedin": "",
"name": "Administrator", "name": "Administrator",
"skype": "",
"state": "active",
"twitter": "",
"username": "root", "username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root", "web_url": "http://gitlab.dev/root",
"website_url": "" "created_at": "2015-12-21T13:14:24.077Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": ""
} }
}, },
{ {
...@@ -236,18 +245,21 @@ Example of response ...@@ -236,18 +245,21 @@ Example of response
"tag": false, "tag": false,
"web_url": "https://example.com/foo/bar/-/jobs/7", "web_url": "https://example.com/foo/bar/-/jobs/7",
"user": { "user": {
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"bio": null,
"created_at": "2015-12-21T13:14:24.077Z",
"id": 1, "id": 1,
"linkedin": "",
"name": "Administrator", "name": "Administrator",
"skype": "",
"state": "active",
"twitter": "",
"username": "root", "username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root", "web_url": "http://gitlab.dev/root",
"website_url": "" "created_at": "2015-12-21T13:14:24.077Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": ""
} }
} }
] ]
...@@ -305,18 +317,21 @@ Example of response ...@@ -305,18 +317,21 @@ Example of response
"tag": false, "tag": false,
"web_url": "https://example.com/foo/bar/-/jobs/8", "web_url": "https://example.com/foo/bar/-/jobs/8",
"user": { "user": {
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"bio": null,
"created_at": "2015-12-21T13:14:24.077Z",
"id": 1, "id": 1,
"linkedin": "",
"name": "Administrator", "name": "Administrator",
"skype": "",
"state": "active",
"twitter": "",
"username": "root", "username": "root",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.dev/root", "web_url": "http://gitlab.dev/root",
"website_url": "" "created_at": "2015-12-21T13:14:24.077Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": ""
} }
} }
``` ```
......
...@@ -27,10 +27,16 @@ Parameters: ...@@ -27,10 +27,16 @@ Parameters:
"web_url": "http://localhost:3000/john_smith", "web_url": "http://localhost:3000/john_smith",
"created_at": "2015-09-03T07:24:01.670Z", "created_at": "2015-09-03T07:24:01.670Z",
"bio": null, "bio": null,
"location": null,
"public_email": "john@example.com",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
"website_url": "", "website_url": "",
"organization": null,
"last_sign_in_at": "2015-09-03T07:24:01.670Z",
"confirmed_at": "2015-09-03T07:24:01.670Z",
"last_activity_on": "2015-09-03",
"email": "john@example.com", "email": "john@example.com",
"theme_id": 2, "theme_id": 2,
"color_scheme_id": 1, "color_scheme_id": 1,
...@@ -40,6 +46,8 @@ Parameters: ...@@ -40,6 +46,8 @@ Parameters:
"can_create_group": true, "can_create_group": true,
"can_create_project": true, "can_create_project": true,
"two_factor_enabled": false "two_factor_enabled": false
"external": false,
"private_profile": null
} }
} }
``` ```
...@@ -294,6 +294,7 @@ Example response: ...@@ -294,6 +294,7 @@ Example response:
"created_at": "2017-11-16T18:38:46.000Z", "created_at": "2017-11-16T18:38:46.000Z",
"bio": null, "bio": null,
"location": null, "location": null,
"public_email": "",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
......
...@@ -199,6 +199,7 @@ Parameters: ...@@ -199,6 +199,7 @@ Parameters:
"created_at": "2012-05-23T08:00:58Z", "created_at": "2012-05-23T08:00:58Z",
"bio": null, "bio": null,
"location": null, "location": null,
"public_email": "john@example.com",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
...@@ -230,6 +231,7 @@ Parameters: ...@@ -230,6 +231,7 @@ Parameters:
"is_admin": false, "is_admin": false,
"bio": null, "bio": null,
"location": null, "location": null,
"public_email": "john@example.com",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
...@@ -367,6 +369,7 @@ GET /user ...@@ -367,6 +369,7 @@ GET /user
"created_at": "2012-05-23T08:00:58Z", "created_at": "2012-05-23T08:00:58Z",
"bio": null, "bio": null,
"location": null, "location": null,
"public_email": "john@example.com",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
...@@ -415,6 +418,7 @@ GET /user ...@@ -415,6 +418,7 @@ GET /user
"is_admin": false, "is_admin": false,
"bio": null, "bio": null,
"location": null, "location": null,
"public_email": "john@example.com",
"skype": "", "skype": "",
"linkedin": "", "linkedin": "",
"twitter": "", "twitter": "",
......
...@@ -53,7 +53,7 @@ module API ...@@ -53,7 +53,7 @@ module API
class User < UserBasic class User < UserBasic
expose :created_at, if: ->(user, opts) { Ability.allowed?(opts[:current_user], :read_user_profile, user) } expose :created_at, if: ->(user, opts) { Ability.allowed?(opts[:current_user], :read_user_profile, user) }
expose :bio, :location, :skype, :linkedin, :twitter, :website_url, :organization expose :bio, :location, :public_email, :skype, :linkedin, :twitter, :website_url, :organization
end end
class UserActivity < Grape::Entity class UserActivity < Grape::Entity
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment