Commit cc0295b789a89a3f52e83e34b08ddf17b464308a

Authored by Dmitriy Zaporozhets
1 parent 6ea6ab7c

Only owner can remove project

app/controllers/application_controller.rb
... ... @@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base
112 112 render file: Rails.root.join("public", "404"), layout: false, status: "404"
113 113 end
114 114  
  115 + def render_403
  116 + render file: Rails.root.join("public", "403"), layout: false, status: "403"
  117 + end
  118 +
115 119 def require_non_empty_project
116 120 redirect_to @project if @project.empty_repo?
117 121 end
... ...
app/controllers/projects_controller.rb
... ... @@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController
89 89 end
90 90  
91 91 def destroy
  92 + return access_denied! unless can?(current_user, :remove_project, project)
  93 +
92 94 # Disable the UsersProject update_repository call, otherwise it will be
93 95 # called once for every person removed from the project
94 96 UsersProject.skip_callback(:destroy, :after, :update_repository)
... ...
app/views/help/permissions.html.haml
... ... @@ -66,3 +66,4 @@
66 66 %legend Owner
67 67 %ul
68 68 %li Transfer project to another namespace
  69 + %li Remove project
... ...
app/views/projects/_form.html.haml
... ... @@ -26,7 +26,7 @@
26 26  
27 27 %span.cred Be careful. Changing project namespace can have unintended side effects
28 28 - else
29   - %a.btn.btn-small.disabled= @project.namespace.try(:human_name) || "/"
  29 + %a.btn.disabled= @project.namespace.try(:human_name) || "/"
30 30  
31 31 %span.cred Only owner can change project namespace.
32 32  
... ... @@ -69,5 +69,6 @@
69 69 = f.submit 'Save', class: "btn save-btn"
70 70 = link_to 'Cancel', @project, class: "btn"
71 71 - unless @project.new_record?
72   - .right
73   - = link_to 'Remove', @project, confirm: 'Are you sure?', method: :delete, class: "btn danger"
  72 + - if can?(current_user, :remove_project, @project)
  73 + .right
  74 + = link_to 'Remove', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn danger"
... ...
app/views/services/_gitlab_ci.html.haml
... ... @@ -5,7 +5,7 @@
5 5 - if @service.active
6 6 %small.cgreen Enabled
7 7 - else
8   - %small.btn Disabled
  8 + %small.cgray Disabled
9 9  
10 10  
11 11  
... ...
app/views/services/index.html.haml
... ... @@ -12,7 +12,7 @@
12 12 - if @gitlab_ci_service.active
13 13 %small.cgreen Enabled
14 14 - else
15   - %small.btn Disabled
  15 + %small.cgray Disabled
16 16 %li.wll
17 17 %h4
18 18 Jenkins CI
... ...