summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiks <miks@cubesystems.lv>2012-09-05 23:01:03 +0300
committermiks <miks@cubesystems.lv>2012-09-05 23:01:03 +0300
commit8f7360f3901ae27a457f252b1a9a091a857434ee (patch)
treeb93b90cea3c78bdb9fb43f0e69ba6dc518747304
parent19a52197462b9b508af6e90ed3ae55b653d4949e (diff)
downloadgitlab-ce-8f7360f3901ae27a457f252b1a9a091a857434ee.tar.gz
API on adding users to project implemented
-rw-r--r--doc/api/projects.md15
-rw-r--r--lib/api/projects.rb12
-rw-r--r--spec/requests/api/projects_spec.rb12
3 files changed, 39 insertions, 0 deletions
diff --git a/doc/api/projects.md b/doc/api/projects.md
index e029522be18..85b88d40fe8 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -106,6 +106,21 @@ Parameters:
Will return created project with status `201 Created` on success, or `404 Not
found` on fail.
+## Add project users
+
+Add users to exiting project
+
+```
+PUT /projects/:id/add_users
+```
+
+Parameters:
+
++ `id` (required) - The ID or code name of a project
++ `user_ids` (required) - new project name
++ `project_access` (required) - new project name
+
+Will return updated project with status `200 OK` on success, or `404 Not found` on fail.
## Project repository branches
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 3d4fde9270f..46e688e47f0 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -44,6 +44,18 @@ module Gitlab
end
end
+ # Add users to project with specified access level
+ #
+ # Parameters:
+ # id (required) - The ID or code name of a project
+ # user_ids (required) - The ID list of users to add
+ # project_access (required) - Project access level
+ # Example Request:
+ # PUT /projects/:id/add_users
+ put ":id/add_users" do
+ user_project.add_users_ids_to_team(params[:user_ids], params[:project_access])
+ end
+
# Get a project repository branches
#
# Parameters:
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index cc6843ccb66..f8434654317 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -62,6 +62,18 @@ describe Gitlab::API do
end
end
+ describe "PUT /projects/:id/add_users" do
+ @user2 = Factory :user
+ @user3 = Factory :user
+
+ it "should add users to existing project" do
+ expect {
+ put api("/projects/#{project.code}/add_users", user),
+ user_ids: [@user2.id, @user3.id], project_access: UsersProject::DEVELOPER
+ }.to change {Project.users_projects.where(:project_access => UsersProject::DEVELOPER).count}.by(2)
+ end
+ end
+
describe "GET /projects/:id" do
it "should return a project by id" do
get api("/projects/#{project.id}", user)