Commit 306ea84e85fe4821dd124163eef8ca5a7f041cbb
Exists in
master
and in
4 other branches
Merge pull request #3251 from AlexDenisov/api_additional_user_fields
Abilities added to /user and /sign_in requests
Showing
7 changed files
with
33 additions
and
6 deletions
Show diff stats
doc/api/session.md
... | ... | @@ -17,7 +17,17 @@ Parameters: |
17 | 17 | "email": "john@example.com", |
18 | 18 | "name": "John Smith", |
19 | 19 | "private_token": "dd34asd13as", |
20 | + "blocked": false, | |
20 | 21 | "created_at": "2012-05-23T08:00:58Z", |
21 | - "blocked": true | |
22 | + "bio": null, | |
23 | + "skype": "", | |
24 | + "linkedin": "", | |
25 | + "twitter": "", | |
26 | + "dark_scheme": false, | |
27 | + "theme_id": 1 | |
28 | + "is_admin": false, | |
29 | + "can_create_group" : true, | |
30 | + "can_create_team" : true, | |
31 | + "can_create_project" : true | |
22 | 32 | } |
23 | 33 | ``` | ... | ... |
doc/api/users.md
... | ... | @@ -154,6 +154,7 @@ GET /user |
154 | 154 | "username": "john_smith", |
155 | 155 | "email": "john@example.com", |
156 | 156 | "name": "John Smith", |
157 | + "private_token": "dd34asd13as", | |
157 | 158 | "blocked": false, |
158 | 159 | "created_at": "2012-05-23T08:00:58Z", |
159 | 160 | "bio": null, |
... | ... | @@ -162,6 +163,10 @@ GET /user |
162 | 163 | "twitter": "", |
163 | 164 | "dark_scheme": false, |
164 | 165 | "theme_id": 1 |
166 | + "is_admin": false, | |
167 | + "can_create_group" : true, | |
168 | + "can_create_team" : true, | |
169 | + "can_create_project" : true | |
165 | 170 | } |
166 | 171 | ``` |
167 | 172 | ... | ... |
lib/api/entities.rb
... | ... | @@ -13,8 +13,12 @@ module Gitlab |
13 | 13 | expose :id, :username, :email, :name, :state, :created_at |
14 | 14 | end |
15 | 15 | |
16 | - class UserLogin < UserBasic | |
16 | + class UserLogin < User | |
17 | 17 | expose :private_token |
18 | + expose :is_admin?, as: :is_admin | |
19 | + expose :can_create_group?, as: :can_create_group | |
20 | + expose :can_create_project?, as: :can_create_project | |
21 | + expose :can_create_team?, as: :can_create_team | |
18 | 22 | end |
19 | 23 | |
20 | 24 | class Hook < Grape::Entity |
... | ... | @@ -31,7 +35,7 @@ module Gitlab |
31 | 35 | end |
32 | 36 | |
33 | 37 | class ProjectMember < UserBasic |
34 | - expose :project_access, :as => :access_level do |user, options| | |
38 | + expose :project_access, as: :access_level do |user, options| | |
35 | 39 | options[:project].users_projects.find_by_user_id(user.id).project_access |
36 | 40 | end |
37 | 41 | end | ... | ... |
lib/api/projects.rb
... | ... | @@ -191,7 +191,7 @@ module Gitlab |
191 | 191 | unless team_member.nil? |
192 | 192 | team_member.destroy |
193 | 193 | else |
194 | - {:message => "Access revoked", :id => params[:user_id].to_i} | |
194 | + {message: "Access revoked", id: params[:user_id].to_i} | |
195 | 195 | end |
196 | 196 | end |
197 | 197 | |
... | ... | @@ -322,7 +322,7 @@ module Gitlab |
322 | 322 | protected = user_project.protected_branches.find_by_name(@branch.name) |
323 | 323 | |
324 | 324 | unless protected |
325 | - user_project.protected_branches.create(:name => @branch.name) | |
325 | + user_project.protected_branches.create(name: @branch.name) | |
326 | 326 | end |
327 | 327 | |
328 | 328 | present @branch, with: Entities::RepoObject, project: user_project | ... | ... |
lib/api/users.rb
spec/requests/api/session_spec.rb
... | ... | @@ -13,6 +13,10 @@ describe Gitlab::API do |
13 | 13 | |
14 | 14 | json_response['email'].should == user.email |
15 | 15 | json_response['private_token'].should == user.private_token |
16 | + json_response['is_admin'].should == user.is_admin? | |
17 | + json_response['can_create_team'].should == user.can_create_team? | |
18 | + json_response['can_create_project'].should == user.can_create_project? | |
19 | + json_response['can_create_group'].should == user.can_create_group? | |
16 | 20 | end |
17 | 21 | end |
18 | 22 | ... | ... |
spec/requests/api/users_spec.rb
... | ... | @@ -214,6 +214,10 @@ describe Gitlab::API do |
214 | 214 | get api("/user", user) |
215 | 215 | response.status.should == 200 |
216 | 216 | json_response['email'].should == user.email |
217 | + json_response['is_admin'].should == user.is_admin? | |
218 | + json_response['can_create_team'].should == user.can_create_team? | |
219 | + json_response['can_create_project'].should == user.can_create_project? | |
220 | + json_response['can_create_group'].should == user.can_create_group? | |
217 | 221 | end |
218 | 222 | |
219 | 223 | it "should return 401 error if user is unauthenticated" do | ... | ... |