From 586d3491f36f0ecfc831e824477399cd319f4a14 Mon Sep 17 00:00:00 2001 From: "Karel.Picman" Date: Fri, 26 Nov 2021 15:23:06 +0100 Subject: [PATCH] #1311 deleting links permission --- app/views/dmsf_files/_link.html.erb | 16 +++++++++------- lib/redmine_dmsf/hooks/views/issue_view_hooks.rb | 4 +++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/views/dmsf_files/_link.html.erb b/app/views/dmsf_files/_link.html.erb index 9149745b..90d1acc8 100644 --- a/app/views/dmsf_files/_link.html.erb +++ b/app/views/dmsf_files/_link.html.erb @@ -77,18 +77,20 @@ title: l(:title_notifications_not_active_activate), class: 'icon-only icon-email-add' %> <% end %> - <% # Delete %> - <% if @issue.attributes_editable? && User.current.allowed_to?(:file_delete, dmsf_file.project) %> - <%= link_to '', + <% else %> + + + <% end %> + <% # Delete %> + <% if @issue.attributes_editable? && + ((link && User.current.allowed_to?(:file_manipulation, dmsf_file.project)) || + (!link && User.current.allowed_to?(:file_delete, dmsf_file.project))) %> + <%= link_to '', link ? dmsf_link_path(link, commit: 'yes', back_url: issue_path(@issue)) : dmsf_file_path(id: dmsf_file, commit: 'yes', back_url: issue_path(@issue)), data: { confirm: l(:text_are_you_sure) }, method: :delete, title: l(:button_delete), class: 'icon-only icon-del' %> - <% end %> - <% else %> - - <% end %> <% # Approval workflow %> <% wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id %> diff --git a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb index 81979c13..fc3e09ce 100644 --- a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb +++ b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb @@ -267,7 +267,9 @@ module RedmineDmsf title: l(:title_notifications_not_active_activate), class: 'icon icon-email-add') end # Delete - if issue.attributes_editable? && User.current.allowed_to?(:file_delete, dmsf_file.project) + if issue.attributes_editable? && + ((link && User.current.allowed_to?(:file_manipulation, dmsf_file.project)) || + (!link && User.current.allowed_to?(:file_delete, dmsf_file.project))) html << link_to('', link ? dmsf_link_path(link, commit: 'yes') : dmsf_file_path(id: dmsf_file, commit: 'yes'), data: { confirm: l(:text_are_you_sure) }, method: :delete, title: l(:button_delete),