Commit 7af1bc3b authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'feature/api_remove_project' of /home/git/repositories/gitlab/gitlabhq

parents 551fa4c9 51825e43
...@@ -244,6 +244,18 @@ Parameters: ...@@ -244,6 +244,18 @@ Parameters:
+ `public` (optional) + `public` (optional)
## Remove project
Removes project with all resources(issues, merge requests etc)
```
DELETE /projects/:id
```
Parameters:
+ `id` (required) - The ID of a project
## Team members ## Team members
......
...@@ -66,7 +66,6 @@ module API ...@@ -66,7 +66,6 @@ module API
present group, with: Entities::GroupDetail present group, with: Entities::GroupDetail
end end
# Remove group # Remove group
# #
# Parameters: # Parameters:
......
...@@ -129,6 +129,16 @@ module API ...@@ -129,6 +129,16 @@ module API
end end
end end
# Remove project
#
# Parameters:
# id (required) - The ID of a project
# Example Request:
# DELETE /projects/:id
delete ":id" do
authorize! :remove_project, user_project
user_project.destroy
end
# Mark this project as forked from another # Mark this project as forked from another
# #
......
...@@ -730,4 +730,42 @@ describe API::API do ...@@ -730,4 +730,42 @@ describe API::API do
end end
end end
end end
describe "DELETE /projects/:id" do
context "when authenticated as user" do
it "should remove project" do
delete api("/projects/#{project.id}", user)
response.status.should == 200
end
it "should not remove a project if not an owner" do
user3 = create(:user)
project.team << [user3, :developer]
delete api("/projects/#{project.id}", user3)
response.status.should == 403
end
it "should not remove a non existing project" do
delete api("/projects/1328", user)
response.status.should == 404
end
it "should not remove a project not attached to user" do
delete api("/projects/#{project.id}", user2)
response.status.should == 404
end
end
context "when authenticated as admin" do
it "should remove any existing project" do
delete api("/projects/#{project.id}", admin)
response.status.should == 200
end
it "should not remove a non existing project" do
delete api("/projects/1328", admin)
response.status.should == 404
end
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment