From 05beafbc574e43ab0b9ab15c1433dda57c7b57ec Mon Sep 17 00:00:00 2001 From: "karel.picman@lbcfree.net" Date: Thu, 10 Sep 2020 10:51:19 +0200 Subject: [PATCH] Manually locking document disables 'Edit content' #1172 --- app/views/dmsf_context_menus/_file.html.erb | 2 +- test/fixtures/dmsf_file_revisions.yml | 68 +++++++++---------- .../dmsf_context_menus_controller_test.rb | 12 ++++ 3 files changed, 47 insertions(+), 35 deletions(-) diff --git a/app/views/dmsf_context_menus/_file.html.erb b/app/views/dmsf_context_menus/_file.html.erb index 4d4cbbfa..02be2c00 100644 --- a/app/views/dmsf_context_menus/_file.html.erb +++ b/app/views/dmsf_context_menus/_file.html.erb @@ -76,7 +76,7 @@ <% url << dmsf_file.name %> <% end %> <%= context_menu_link l(:button_edit_content), url, class: "icon icon-file #{DmsfHelper.filetype_css(dmsf_file.name)}", - disabled: url.blank? || locked %> + disabled: url.blank? || (locked && (!unlockable)) %>
  • <%= context_menu_link l(:button_delete), diff --git a/test/fixtures/dmsf_file_revisions.yml b/test/fixtures/dmsf_file_revisions.yml index 7f4edfaf..d0d1f1d9 100644 --- a/test/fixtures/dmsf_file_revisions.yml +++ b/test/fixtures/dmsf_file_revisions.yml @@ -48,11 +48,11 @@ dmsf_file_revisions_003: id: 3 dmsf_file_id: 3 source_dmsf_file_revision_id: NULL - name: "deleted.txt" - disk_filename: "deleted.txt" + name: 'deleted.txt' + disk_filename: 'deleted.txt' size: 4 - mime_type: text/plain - title: "Test File" + mime_type: 'text/plain' + title: 'Test File' description: NULL workflow: NULL minor_version: 0 @@ -72,7 +72,7 @@ dmsf_file_revisions_004: name: 'test4.txt' disk_filename: 'test4.txt' size: 4 - mime_type: text/plain + mime_type: 'text/plain' title: 'Test File' description: NULL workflow: NULL @@ -90,16 +90,16 @@ dmsf_file_revisions_005: id: 5 dmsf_file_id: 1 source_dmsf_file_revision_id: NULL - name: "test5.txt" - disk_filename: "test5.txt" + name: 'test5.txt' + disk_filename: 'test5.txt' size: 4 - mime_type: text/plain - title: "Test File" + mime_type: 'application/vnd.oasis.opendocument.text' + title: 'Test File' description: NULL workflow: 1 # DmsfWorkflow::STATE_WAITING_FOR_APPROVAL minor_version: 0 major_version: 1 - comment: NULL + comment: 'Wrong mime type in order to have Edit content menu item' deleted: 0 deleted_by_user_id: NULL user_id: 1 @@ -111,11 +111,11 @@ dmsf_file_revisions_006: id: 6 dmsf_file_id: 7 source_dmsf_file_revision_id: NULL - name: "test.gif" - disk_filename: "test.gif" + name: 'test.gif' + disk_filename: 'test.gif' size: 4 - mime_type: image/gif - title: "Image" + mime_type: 'image/gif' + title: 'Image' description: NULL workflow: NULL minor_version: 0 @@ -132,11 +132,11 @@ dmsf_file_revisions_007: id: 7 dmsf_file_id: 8 source_dmsf_file_revision_id: NULL - name: "test.pdf" - disk_filename: "test.pdf" + name: 'test.pdf' + disk_filename: 'test.pdf' size: 4 - mime_type: application/pdf - title: "PDF" + mime_type: 'application/pdf' + title: 'PDF' description: NULL workflow: NULL minor_version: 0 @@ -153,11 +153,11 @@ dmsf_file_revisions_008: id: 8 dmsf_file_id: 9 source_dmsf_file_revision_id: NULL - name: "myfile.txt" - disk_filename: "myfile.txt" # The file is not physicaly present + name: 'myfile.txt' + disk_filename: 'myfile.txt' # The file is not physicaly present size: 0 - mime_type: text/plain - title: "My File" + mime_type: 'text/plain' + title: 'My File' description: NULL workflow: NULL minor_version: 0 @@ -174,11 +174,11 @@ dmsf_file_revisions_009: id: 9 dmsf_file_id: 10 source_dmsf_file_revision_id: NULL - name: "zero.txt" - disk_filename: "zero.txt" + name: 'zero.txt' + disk_filename: 'zero.txt' size: 0 - mime_type: text/plain - title: "Zero Size File" + mime_type: 'text/plain' + title: 'Zero Size File' description: NULL workflow: NULL minor_version: 0 @@ -195,11 +195,11 @@ dmsf_file_revisions_010: id: 10 dmsf_file_id: 5 source_dmsf_file_revision_id: NULL - name: "test.txt" - disk_filename: "test.txt" + name: 'test.txt' + disk_filename: 'test.txt' size: 4 - mime_type: text/plain - title: "Test File" + mime_type: 'text/plain' + title: 'Test File' description: 'Some file :-)' workflow: 1 # DmsfWorkflow::STATE_WAITING_FOR_APPROVAL minor_version: 0 @@ -217,11 +217,11 @@ dmsf_file_revisions_011: id: 11 dmsf_file_id: 12 source_dmsf_file_revision_id: NULL - name: "test.txt" - disk_filename: "test.txt" + name: 'test.txt' + disk_filename: 'test.txt' size: 4 - mime_type: text/plain - title: "Test File" + mime_type: 'text/plain' + title: 'Test File' description: 'Some file :-)' workflow: 0 minor_version: 0 diff --git a/test/functional/dmsf_context_menus_controller_test.rb b/test/functional/dmsf_context_menus_controller_test.rb index fecd0f64..6a84a323 100644 --- a/test/functional/dmsf_context_menus_controller_test.rb +++ b/test/functional/dmsf_context_menus_controller_test.rb @@ -56,6 +56,18 @@ class DmsfContextMenusControllerTest < RedmineDmsf::Test::TestCase assert_select 'a.icon-lock', text: l(:button_lock), count: 0 assert_select 'a.icon-email-add.disabled', text: l(:label_notifications_on) assert_select 'a.icon-del.disabled', text: l(:button_delete) + assert_select 'a.icon-file.disabled', text: l(:button_edit_content) + end + + def test_dmsf_edit_file_locked_by_myself + User.current = @jsmith + @file1.lock! + User.current = nil + get :dmsf, params: { id: @file1.project.id, ids: ["file-#{@file1.id}"] } + assert_select 'a.icon-unlock', text: l(:button_unlock) + assert_select 'a.icon-unlock.disabled', text: l(:button_edit_content), count: 0 + assert_select 'a.icon-file', text: l(:button_edit_content) + assert_select 'a.icon-file.disabled', text: l(:button_edit_content), count: 0 end def test_dmsf_file_locked_force_unlock_permission_off