diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 2519afc04..9b42c8960 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -310,7 +310,7 @@ class RepositoriesController < ApplicationController end def check_edit_and_destroy_permissions - render_403 unless can_manage_repository?(@team) + render_403 unless can_update_or_delete_repository?(@repository) end def repository_params diff --git a/app/permissions/team.rb b/app/permissions/team.rb index 24298fcb8..78f505033 100644 --- a/app/permissions/team.rb +++ b/app/permissions/team.rb @@ -38,7 +38,7 @@ Canaid::Permissions.register_for(Team) do user.is_normal_user_or_admin_of_team?(team) end - # create, copy, edit, destroy repository + # create, copy repository can :manage_repository do |user, team| user.is_admin_of_team?(team) end @@ -97,6 +97,13 @@ Canaid::Permissions.register_for(CustomField) do end end +Canaid::Permissions.register_for(Repository) do + # edit, destroy repository + can :update_or_delete_repository do |user, repository| + can_manage_repository?(user, repository.team) + end +end + Canaid::Permissions.register_for(RepositoryRow) do # update, delete specific repository record can :update_or_delete_repository_row do |user, repository_row| diff --git a/app/views/repositories/_repository.html.erb b/app/views/repositories/_repository.html.erb index c7f01d418..a9d1e1f49 100644 --- a/app/views/repositories/_repository.html.erb +++ b/app/views/repositories/_repository.html.erb @@ -43,12 +43,14 @@