Merge branch 'feature/api_remove_project' of /home/git/repositories/gitlab/gitlabhq
This commit is contained in:
commit
7af1bc3b88
4 changed files with 60 additions and 1 deletions
|
@ -244,6 +244,18 @@ Parameters:
|
|||
+ `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
|
||||
|
||||
|
|
|
@ -66,7 +66,6 @@ module API
|
|||
present group, with: Entities::GroupDetail
|
||||
end
|
||||
|
||||
|
||||
# Remove group
|
||||
#
|
||||
# Parameters:
|
||||
|
|
|
@ -129,6 +129,16 @@ module API
|
|||
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
|
||||
#
|
||||
|
|
|
@ -730,4 +730,42 @@ describe API::API do
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue