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
This commit is contained in:
commit
d5bce06df1
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
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
|
||||||
"status": "success",
|
"status": "success",
|
||||||
"tag": false,
|
"tag": false,
|
||||||
"user": {
|
"user": {
|
||||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
|
||||||
"bio": null,
|
|
||||||
"created_at": "2016-08-11T07:09:20.351Z",
|
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"linkedin": "",
|
|
||||||
"location": null,
|
|
||||||
"name": "Administrator",
|
"name": "Administrator",
|
||||||
"skype": "",
|
|
||||||
"state": "active",
|
|
||||||
"twitter": "",
|
|
||||||
"username": "root",
|
"username": "root",
|
||||||
"web_url": "http://localhost:3000/root",
|
"state": "active",
|
||||||
"website_url": ""
|
"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,
|
||||||
|
"location": null,
|
||||||
|
"public_email": "",
|
||||||
|
"skype": "",
|
||||||
|
"linkedin": "",
|
||||||
|
"twitter": "",
|
||||||
|
"website_url": "",
|
||||||
|
"organization": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"environment": {
|
"environment": {
|
||||||
|
@ -103,19 +105,21 @@ Example of response
|
||||||
"status": "success",
|
"status": "success",
|
||||||
"tag": false,
|
"tag": false,
|
||||||
"user": {
|
"user": {
|
||||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
|
||||||
"bio": null,
|
|
||||||
"created_at": "2016-08-11T07:09:20.351Z",
|
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"linkedin": "",
|
|
||||||
"location": null,
|
|
||||||
"name": "Administrator",
|
"name": "Administrator",
|
||||||
"skype": "",
|
|
||||||
"state": "active",
|
|
||||||
"twitter": "",
|
|
||||||
"username": "root",
|
"username": "root",
|
||||||
"web_url": "http://localhost:3000/root",
|
"state": "active",
|
||||||
"website_url": ""
|
"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,
|
||||||
|
"location": null,
|
||||||
|
"public_email": "",
|
||||||
|
"skype": "",
|
||||||
|
"linkedin": "",
|
||||||
|
"twitter": "",
|
||||||
|
"website_url": "",
|
||||||
|
"organization": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"environment": {
|
"environment": {
|
||||||
|
@ -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
|
||||||
"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
|
||||||
"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
|
||||||
"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
|
||||||
"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
|
||||||
"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:
|
||||||
"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:
|
||||||
"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:
|
||||||
"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:
|
||||||
"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:
|
||||||
"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
|
||||||
"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
|
||||||
"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
|
||||||
|
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue