Manually locking document disables 'Edit content' #1172

This commit is contained in:
karel.picman@lbcfree.net 2020-09-10 10:51:19 +02:00
parent 855eed1f53
commit 05beafbc57
3 changed files with 47 additions and 35 deletions

View File

@ -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)) %>
</li>
<li>
<%= context_menu_link l(:button_delete),

View File

@ -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

View File

@ -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