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 | ... | ... |