Commit cc0295b789a89a3f52e83e34b08ddf17b464308a
1 parent
6ea6ab7c
Exists in
master
and in
4 other branches
Only owner can remove project
Showing
6 changed files
with
13 additions
and
5 deletions
Show diff stats
app/controllers/application_controller.rb
@@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base | @@ -112,6 +112,10 @@ class ApplicationController < ActionController::Base | ||
112 | render file: Rails.root.join("public", "404"), layout: false, status: "404" | 112 | render file: Rails.root.join("public", "404"), layout: false, status: "404" |
113 | end | 113 | end |
114 | 114 | ||
115 | + def render_403 | ||
116 | + render file: Rails.root.join("public", "403"), layout: false, status: "403" | ||
117 | + end | ||
118 | + | ||
115 | def require_non_empty_project | 119 | def require_non_empty_project |
116 | redirect_to @project if @project.empty_repo? | 120 | redirect_to @project if @project.empty_repo? |
117 | end | 121 | end |
app/controllers/projects_controller.rb
@@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController | @@ -89,6 +89,8 @@ class ProjectsController < ProjectResourceController | ||
89 | end | 89 | end |
90 | 90 | ||
91 | def destroy | 91 | def destroy |
92 | + return access_denied! unless can?(current_user, :remove_project, project) | ||
93 | + | ||
92 | # Disable the UsersProject update_repository call, otherwise it will be | 94 | # Disable the UsersProject update_repository call, otherwise it will be |
93 | # called once for every person removed from the project | 95 | # called once for every person removed from the project |
94 | UsersProject.skip_callback(:destroy, :after, :update_repository) | 96 | UsersProject.skip_callback(:destroy, :after, :update_repository) |
app/views/help/permissions.html.haml
app/views/projects/_form.html.haml
@@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
26 | | 26 | |
27 | %span.cred Be careful. Changing project namespace can have unintended side effects | 27 | %span.cred Be careful. Changing project namespace can have unintended side effects |
28 | - else | 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 | %span.cred Only owner can change project namespace. | 31 | %span.cred Only owner can change project namespace. |
32 | 32 | ||
@@ -69,5 +69,6 @@ | @@ -69,5 +69,6 @@ | ||
69 | = f.submit 'Save', class: "btn save-btn" | 69 | = f.submit 'Save', class: "btn save-btn" |
70 | = link_to 'Cancel', @project, class: "btn" | 70 | = link_to 'Cancel', @project, class: "btn" |
71 | - unless @project.new_record? | 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
app/views/services/index.html.haml