summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-18 23:20:11 -0700
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-18 23:20:11 -0700
commit306ea84e85fe4821dd124163eef8ca5a7f041cbb (patch)
tree1c182c116bf6dacefb0ad1af46c2665a158429a6
parent924643198c924c19d0b468b27ee92077cefe7424 (diff)
parenta15fe61fb041ae7c2704bde6d73c246b85d618f7 (diff)
downloadgitlab-ce-306ea84e85fe4821dd124163eef8ca5a7f041cbb.tar.gz
Merge pull request #3251 from AlexDenisov/api_additional_user_fields
Abilities added to /user and /sign_in requests
-rw-r--r--doc/api/session.md12
-rw-r--r--doc/api/users.md5
-rw-r--r--lib/api/entities.rb8
-rw-r--r--lib/api/projects.rb4
-rw-r--r--lib/api/users.rb2
-rw-r--r--spec/requests/api/session_spec.rb4
-rw-r--r--spec/requests/api/users_spec.rb4
7 files changed, 33 insertions, 6 deletions
diff --git a/doc/api/session.md b/doc/api/session.md
index c7e57aaca7a..d68788d5583 100644
--- a/doc/api/session.md
+++ b/doc/api/session.md
@@ -17,7 +17,17 @@ Parameters:
"email": "john@example.com",
"name": "John Smith",
"private_token": "dd34asd13as",
+ "blocked": false,
"created_at": "2012-05-23T08:00:58Z",
- "blocked": true
+ "bio": null,
+ "skype": "",
+ "linkedin": "",
+ "twitter": "",
+ "dark_scheme": false,
+ "theme_id": 1
+ "is_admin": false,
+ "can_create_group" : true,
+ "can_create_team" : true,
+ "can_create_project" : true
}
```
diff --git a/doc/api/users.md b/doc/api/users.md
index 70a2449f2e1..c05bcb3e539 100644
--- a/doc/api/users.md
+++ b/doc/api/users.md
@@ -154,6 +154,7 @@ GET /user
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
+ "private_token": "dd34asd13as",
"blocked": false,
"created_at": "2012-05-23T08:00:58Z",
"bio": null,
@@ -162,6 +163,10 @@ GET /user
"twitter": "",
"dark_scheme": false,
"theme_id": 1
+ "is_admin": false,
+ "can_create_group" : true,
+ "can_create_team" : true,
+ "can_create_project" : true
}
```
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 5479765a089..42dae53b4d1 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -13,8 +13,12 @@ module Gitlab
expose :id, :username, :email, :name, :state, :created_at
end
- class UserLogin < UserBasic
+ class UserLogin < User
expose :private_token
+ expose :is_admin?, as: :is_admin
+ expose :can_create_group?, as: :can_create_group
+ expose :can_create_project?, as: :can_create_project
+ expose :can_create_team?, as: :can_create_team
end
class Hook < Grape::Entity
@@ -31,7 +35,7 @@ module Gitlab
end
class ProjectMember < UserBasic
- expose :project_access, :as => :access_level do |user, options|
+ expose :project_access, as: :access_level do |user, options|
options[:project].users_projects.find_by_user_id(user.id).project_access
end
end
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index e82cfeca45d..d4f50fda1b5 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -191,7 +191,7 @@ module Gitlab
unless team_member.nil?
team_member.destroy
else
- {:message => "Access revoked", :id => params[:user_id].to_i}
+ {message: "Access revoked", id: params[:user_id].to_i}
end
end
@@ -322,7 +322,7 @@ module Gitlab
protected = user_project.protected_branches.find_by_name(@branch.name)
unless protected
- user_project.protected_branches.create(:name => @branch.name)
+ user_project.protected_branches.create(name: @branch.name)
end
present @branch, with: Entities::RepoObject, project: user_project
diff --git a/lib/api/users.rb b/lib/api/users.rb
index e9cf16fa37d..567750dfa45 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -124,7 +124,7 @@ module Gitlab
# Example Request:
# GET /user
get do
- present @current_user, with: Entities::User
+ present @current_user, with: Entities::UserLogin
end
# Get currently authenticated user's keys
diff --git a/spec/requests/api/session_spec.rb b/spec/requests/api/session_spec.rb
index 2cdb0d7e9b4..4a37312bffd 100644
--- a/spec/requests/api/session_spec.rb
+++ b/spec/requests/api/session_spec.rb
@@ -13,6 +13,10 @@ describe Gitlab::API do
json_response['email'].should == user.email
json_response['private_token'].should == user.private_token
+ json_response['is_admin'].should == user.is_admin?
+ json_response['can_create_team'].should == user.can_create_team?
+ json_response['can_create_project'].should == user.can_create_project?
+ json_response['can_create_group'].should == user.can_create_group?
end
end
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index 749769d45c2..b4688dd29f7 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -214,6 +214,10 @@ describe Gitlab::API do
get api("/user", user)
response.status.should == 200
json_response['email'].should == user.email
+ json_response['is_admin'].should == user.is_admin?
+ json_response['can_create_team'].should == user.can_create_team?
+ json_response['can_create_project'].should == user.can_create_project?
+ json_response['can_create_group'].should == user.can_create_group?
end
it "should return 401 error if user is unauthenticated" do