Only owner can remove project

This commit is contained in:
Dmitriy Zaporozhets 2012-12-05 06:14:05 +03:00
parent 6ea6ab7c8d
commit cc0295b789
6 changed files with 13 additions and 5 deletions

View file

@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base
render file: Rails.root.join("public", "404"), layout: false, status: "404"
end
def render_403
render file: Rails.root.join("public", "403"), layout: false, status: "403"
end
def require_non_empty_project
redirect_to @project if @project.empty_repo?
end

View file

@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController
end
def destroy
return access_denied! unless can?(current_user, :remove_project, project)
# Disable the UsersProject update_repository call, otherwise it will be
# called once for every person removed from the project
UsersProject.skip_callback(:destroy, :after, :update_repository)

View file

@ -66,3 +66,4 @@
%legend Owner
%ul
%li Transfer project to another namespace
%li Remove project

View file

@ -26,7 +26,7 @@
&nbsp;
%span.cred Be careful. Changing project namespace can have unintended side effects
- else
%a.btn.btn-small.disabled= @project.namespace.try(:human_name) || "/"
%a.btn.disabled= @project.namespace.try(:human_name) || "/"
&nbsp;
%span.cred Only owner can change project namespace.
@ -69,5 +69,6 @@
= f.submit 'Save', class: "btn save-btn"
= link_to 'Cancel', @project, class: "btn"
- unless @project.new_record?
.right
= link_to 'Remove', @project, confirm: 'Are you sure?', method: :delete, class: "btn danger"
- if can?(current_user, :remove_project, @project)
.right
= link_to 'Remove', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn danger"

View file

@ -5,7 +5,7 @@
- if @service.active
%small.cgreen Enabled
- else
%small.btn Disabled
%small.cgray Disabled

View file

@ -12,7 +12,7 @@
- if @gitlab_ci_service.active
%small.cgreen Enabled
- else
%small.btn Disabled
%small.cgray Disabled
%li.wll
%h4
Jenkins CI