Commit cc0295b7 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Only owner can remove project

parent 6ea6ab7c
...@@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base ...@@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base
render file: Rails.root.join("public", "404"), layout: false, status: "404" render file: Rails.root.join("public", "404"), layout: false, status: "404"
end end
def render_403
render file: Rails.root.join("public", "403"), layout: false, status: "403"
end
def require_non_empty_project def require_non_empty_project
redirect_to @project if @project.empty_repo? redirect_to @project if @project.empty_repo?
end end
......
...@@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController ...@@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController
end end
def destroy def destroy
return access_denied! unless can?(current_user, :remove_project, project)
# Disable the UsersProject update_repository call, otherwise it will be # Disable the UsersProject update_repository call, otherwise it will be
# called once for every person removed from the project # called once for every person removed from the project
UsersProject.skip_callback(:destroy, :after, :update_repository) UsersProject.skip_callback(:destroy, :after, :update_repository)
......
...@@ -66,3 +66,4 @@ ...@@ -66,3 +66,4 @@
%legend Owner %legend Owner
%ul %ul
%li Transfer project to another namespace %li Transfer project to another namespace
%li Remove project
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
&nbsp; &nbsp;
%span.cred Be careful. Changing project namespace can have unintended side effects %span.cred Be careful. Changing project namespace can have unintended side effects
- else - else
%a.btn.btn-small.disabled= @project.namespace.try(:human_name) || "/" %a.btn.disabled= @project.namespace.try(:human_name) || "/"
&nbsp; &nbsp;
%span.cred Only owner can change project namespace. %span.cred Only owner can change project namespace.
...@@ -69,5 +69,6 @@ ...@@ -69,5 +69,6 @@
= f.submit 'Save', class: "btn save-btn" = f.submit 'Save', class: "btn save-btn"
= link_to 'Cancel', @project, class: "btn" = link_to 'Cancel', @project, class: "btn"
- unless @project.new_record? - unless @project.new_record?
- if can?(current_user, :remove_project, @project)
.right .right
= link_to 'Remove', @project, confirm: 'Are you sure?', method: :delete, class: "btn danger" = link_to 'Remove', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn danger"
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
- if @service.active - if @service.active
%small.cgreen Enabled %small.cgreen Enabled
- else - else
%small.btn Disabled %small.cgray Disabled
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
- if @gitlab_ci_service.active - if @gitlab_ci_service.active
%small.cgreen Enabled %small.cgreen Enabled
- else - else
%small.btn Disabled %small.cgray Disabled
%li.wll %li.wll
%h4 %h4
Jenkins CI Jenkins CI
......
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