Cannot unlock a folder despite :force_file_unlock permission #1265
This commit is contained in:
parent
7c45b8a752
commit
30664c84dc
@ -39,8 +39,8 @@ class DmsfContextMenusController < ApplicationController
|
||||
@locked = @dmsf_folder.locked?
|
||||
@project = @dmsf_folder.project
|
||||
@allowed = User.current.allowed_to?(:folder_manipulation, @project)
|
||||
@unlockable = @allowed && @dmsf_folder.unlockable? && (!@dmsf_folder.locked_for_user?) &&
|
||||
User.current.allowed_to?(:force_file_unlock, @project)
|
||||
@unlockable = @allowed && @dmsf_folder.unlockable? && (!@dmsf_folder.locked_for_user? ||
|
||||
User.current.allowed_to?(:force_file_unlock, @project))
|
||||
@email_allowed = User.current.allowed_to?(:email_documents, @project)
|
||||
elsif @dmsf_link # url link
|
||||
@locked = false
|
||||
|
||||
@ -82,7 +82,7 @@ module RedmineDmsf
|
||||
def unlockable?
|
||||
return false unless self.locked?
|
||||
existing = self.lock(true)
|
||||
# If its empty its a folder that's locked (not root)
|
||||
# If it's empty, it's a folder that's locked (not root)
|
||||
(existing.empty? || (self.dmsf_folder&.locked?)) ? false : true
|
||||
end
|
||||
|
||||
|
||||
@ -216,6 +216,23 @@ class DmsfContextMenusControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_select 'a.icon-del.disabled', text: l(:button_delete)
|
||||
end
|
||||
|
||||
def test_dmsf_folder_locked_force_unlock_permission_off
|
||||
@request.session[:user_id] = @dlopper.id
|
||||
get :dmsf, params: { id: @folder2.project.id, ids: ["folder-#{@folder2.id}"] }
|
||||
assert_response :success
|
||||
# @folder2 is locked by @jsmith, therefore @dlopper can't unlock it
|
||||
assert_select 'a.icon-unlock.disabled', text: l(:button_unlock)
|
||||
end
|
||||
|
||||
def test_dmsf_folder_locked_force_unlock_permission_om
|
||||
@request.session[:user_id] = @dlopper.id
|
||||
@role_developer.add_permission! :force_file_unlock
|
||||
get :dmsf, params: { id: @folder2.project.id, ids: ["folder-#{@folder2.id}"] }
|
||||
assert_response :success
|
||||
# @folder2 is locked by @jsmith, but @dlopper can unlock it
|
||||
assert_select 'a.icon-unlock.disabled', text: l(:button_unlock), count: 0
|
||||
end
|
||||
|
||||
def test_dmsf_folder_notification_on
|
||||
@folder5.notify_activate
|
||||
get :dmsf, params: { id: @folder5.project.id, ids: ["folder-#{@folder5.id}"] }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user