diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index be6033d7..73b648a9 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -192,9 +192,9 @@ class DmsfController < ApplicationController else download_entries @selected_folders, @selected_files end - rescue RedmineDmsf::Errors::DmsfFileNotFoundError + rescue DmsfFileNotFoundError render_404 - rescue RedmineDmsf::Errors::DmsfAccessError + rescue DmsfAccessError render_403 rescue StandardError => e flash[:error] = e.message @@ -497,16 +497,14 @@ class DmsfController < ApplicationController end def email_entries(selected_folders, selected_files) - raise RedmineDmsf::Errors::DmsfAccessError unless User.current.allowed_to?(:email_documents, @project) + raise DmsfAccessError unless User.current.allowed_to?(:email_documents, @project) zip = Zip.new zip_entries(zip, selected_folders, selected_files) zipped_content = zip.finish max_filesize = RedmineDmsf.dmsf_max_email_filesize - if max_filesize.positive? && File.size(zipped_content) > max_filesize * 1_048_576 - raise RedmineDmsf::Errors::DmsfEmailMaxFileSizeError - end + raise DmsfEmailMaxFileSizeError if max_filesize.positive? && File.size(zipped_content) > max_filesize * 1_048_576 zip.dmsf_files.each do |f| # Action @@ -569,23 +567,22 @@ class DmsfController < ApplicationController member = Member.find_by(user_id: User.current.id, project_id: @project.id) selected_folders.each do |selected_folder_id| folder = DmsfFolder.visible.find_by(id: selected_folder_id) - raise RedmineDmsf::Errors::DmsfFileNotFoundError unless folder + raise DmsfFileNotFoundError unless folder zip.add_dmsf_folder folder, member, folder&.dmsf_folder&.dmsf_path_str end selected_files.each do |selected_file_id| file = DmsfFile.visible.find_by(id: selected_file_id) - unless file&.last_revision && File.exist?(file.last_revision&.disk_file) - raise RedmineDmsf::Errors::DmsfFileNotFoundError - end + raise DmsfFileNotFoundError unless file&.last_revision && File.exist?(file.last_revision&.disk_file) + unless (file.project == @project) || User.current.allowed_to?(:view_dmsf_files, file.project) - raise RedmineDmsf::Errors::DmsfAccessError + raise DmsfAccessError end zip.add_dmsf_file file, member, file.dmsf_folder&.dmsf_path_str end max_files = RedmineDmsf.dmsf_max_file_download - raise RedmineDmsf::Errors::DmsfZipMaxFilesError if max_files.positive? && zip.dmsf_files.length > max_files + raise DmsfZipMaxFilesError if max_files.positive? && zip.dmsf_files.length > max_files zip end @@ -595,19 +592,19 @@ class DmsfController < ApplicationController selected_folders.each do |id| folder = DmsfFolder.find_by(id: id) - raise RedmineDmsf::Errors::DmsfFileNotFoundError unless folder + raise DmsfFileNotFoundError unless folder end # Files selected_files.each do |id| file = DmsfFile.find_by(id: id) - raise RedmineDmsf::Errors::DmsfFileNotFoundError unless file + raise DmsfFileNotFoundError unless file flash[:error] = file.errors.full_messages.to_sentence unless file.restore end # Links selected_links.each do |id| link = DmsfLink.find_by(id: id) - raise RedmineDmsf::Errors::DmsfFileNotFoundError unless link + raise DmsfFileNotFoundError unless link flash[:error] = link.errors.full_messages.to_sentence unless link.restore end @@ -616,20 +613,20 @@ class DmsfController < ApplicationController def delete_entries(selected_folders, selected_files, selected_links, commit) # Folders selected_folders.each do |id| - raise RedmineDmsf::Errors::DmsfAccessError unless User.current.allowed_to?(:folder_manipulation, @project) + raise DmsfAccessError unless User.current.allowed_to?(:folder_manipulation, @project) folder = DmsfFolder.find_by(id: id) if folder raise StandardError, folder.errors.full_messages.to_sentence unless folder.delete(commit: commit) elsif !commit - raise RedmineDmsf::Errors::DmsfFileNotFoundError + raise DmsfFileNotFoundError end end # Files deleted_files = [] not_deleted_files = [] if selected_files.any? - raise RedmineDmsf::Errors::DmsfAccessError unless User.current.allowed_to?(:file_delete, @project) + raise DmsfAccessError unless User.current.allowed_to?(:file_delete, @project) selected_files.each do |id| file = DmsfFile.find_by(id: id) @@ -640,7 +637,7 @@ class DmsfController < ApplicationController not_deleted_files << file end elsif !commit - raise RedmineDmsf::Errors::DmsfFileNotFoundError + raise DmsfFileNotFoundError end end end @@ -665,7 +662,7 @@ class DmsfController < ApplicationController end # Links if selected_links.any? - raise RedmineDmsf::Errors::DmsfAccessError unless User.current.allowed_to?(:folder_manipulation, @project) + raise DmsfAccessError unless User.current.allowed_to?(:folder_manipulation, @project) selected_links.each do |id| link = DmsfLink.find_by(id: id) @@ -699,11 +696,10 @@ class DmsfController < ApplicationController def move_entries(selected_folders, selected_files, selected_links) # Permissions - if selected_folders.any? && !User.current.allowed_to?(:folder_manipulation, @project) - raise RedmineDmsf::Errors::DmsfAccessError - end + raise DmsfAccessError if selected_folders.any? && !User.current.allowed_to?(:folder_manipulation, @project) + if (selected_folders.any? || selected_links.any?) && !User.current.allowed_to?(:file_manipulation, @project) - raise RedmineDmsf::Errors::DmsfAccessError + raise DmsfAccessError end # Folders @@ -826,27 +822,27 @@ class DmsfController < ApplicationController links = DmsfLink.where(id: @selected_links).to_a (folders + files + links).each do |entry| if entry.dmsf_folder - raise RedmineDmsf::Errors::DmsfParentError if entry.dmsf_folder == @target_folder || entry == @target_folder + raise DmsfParentError if entry.dmsf_folder == @target_folder || entry == @target_folder elsif @target_folder.nil? - raise RedmineDmsf::Errors::DmsfParentError if entry.project == @target_project + raise DmsfParentError if entry.project == @target_project end end # Prevent recursion if params[:move_entries].present? folders.each do |entry| - raise RedmineDmsf::Errors::DmsfParentError if entry.any_child?(@target_folder) + raise DmsfParentError if entry.any_child?(@target_folder) end end # Check permissions if (@target_folder && (@target_folder.locked_for_user? || !DmsfFolder.permissions?(@target_folder, allow_system: false))) || !@target_project.allows_to?(:folder_manipulation) - raise RedmineDmsf::Errors::DmsfAccessError + raise DmsfAccessError end - rescue RedmineDmsf::Errors::DmsfParentError + rescue DmsfParentError flash[:error] = l(:error_target_folder_same) redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) - rescue RedmineDmsf::Errors::DmsfAccessError + rescue DmsfAccessError render_403 end end diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index e3c0a624..e2727472 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -49,7 +49,7 @@ class DmsfFilesController < ApplicationController @revision = @file.last_revision else @revision = DmsfFileRevision.find(params[:download].to_i) - raise RedmineDmsf::Errors::DmsfAccessError if @revision.dmsf_file != @file + raise DmsfAccessError if @revision.dmsf_file != @file end check_project @revision.dmsf_file @@ -93,7 +93,7 @@ class DmsfFilesController < ApplicationController type: @revision.detect_content_type, disposition: params[:disposition].presence || @revision.dmsf_file.disposition end - rescue RedmineDmsf::Errors::DmsfAccessError => e + rescue DmsfAccessError => e Rails.logger.error e.message render_403 rescue StandardError => e @@ -378,6 +378,6 @@ class DmsfFilesController < ApplicationController def check_project(entry) return unless entry && entry.project != @project - raise RedmineDmsf::Errors::DmsfAccessError, l(:error_entry_project_does_not_match_current_project) + raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project) end end diff --git a/app/controllers/dmsf_folder_permissions_controller.rb b/app/controllers/dmsf_folder_permissions_controller.rb index 9bf9d20b..0716490b 100644 --- a/app/controllers/dmsf_folder_permissions_controller.rb +++ b/app/controllers/dmsf_folder_permissions_controller.rb @@ -66,7 +66,7 @@ class DmsfFolderPermissionsController < ApplicationController def find_project @project = Project.visible.find_by_param(params[:project_id]) - rescue RedmineDmsf::Errors::DmsfAccessError + rescue DmsfAccessError render_403 rescue ActiveRecord::RecordNotFound render_404 @@ -74,7 +74,7 @@ class DmsfFolderPermissionsController < ApplicationController def find_folder @dmsf_folder = DmsfFolder.visible.find(params[:dmsf_folder_id]) - rescue RedmineDmsf::Errors::DmsfAccessError + rescue DmsfAccessError render_403 rescue ActiveRecord::RecordNotFound render_404 diff --git a/app/controllers/dmsf_upload_controller.rb b/app/controllers/dmsf_upload_controller.rb index 35ef894a..5a515789 100644 --- a/app/controllers/dmsf_upload_controller.rb +++ b/app/controllers/dmsf_upload_controller.rb @@ -150,7 +150,7 @@ class DmsfUploadController < ApplicationController def find_folder @folder = DmsfFolder.visible.find(params[:folder_id]) if params.key?('folder_id') - rescue RedmineDmsf::Errors::DmsfAccessError + rescue DmsfAccessError render_403 end end diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index a058b954..1cc32e8e 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -81,7 +81,7 @@ class DmsfWorkflowsController < ApplicationController if revision.dmsf_file begin revision.dmsf_file.unlock!(force_file_unlock_allowed: true) unless RedmineDmsf.dmsf_keep_documents_locked? - rescue RedmineDmsf::Errors::DmsfLockError => e + rescue DmsfLockError => e flash[:info] = e.message end end @@ -225,7 +225,7 @@ class DmsfWorkflowsController < ApplicationController if file begin file.lock! - rescue RedmineDmsf::Errors::DmsfLockError => e + rescue DmsfLockError => e Rails.logger.warn e.message end flash[:notice] = l(:notice_successful_update) diff --git a/lib/redmine_dmsf/errors/dmsf_access_error.rb b/app/errors/dmsf_access_error.rb similarity index 87% rename from lib/redmine_dmsf/errors/dmsf_access_error.rb rename to app/errors/dmsf_access_error.rb index e84f88fe..388ff2f6 100644 --- a/lib/redmine_dmsf/errors/dmsf_access_error.rb +++ b/app/errors/dmsf_access_error.rb @@ -18,11 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # Access error - class DmsfAccessError < StandardError - # Nothing to do - end - end +# Access error +class DmsfAccessError < StandardError + # Nothing to do end diff --git a/lib/redmine_dmsf/errors/dmsf_email_max_file_size_error.rb b/app/errors/dmsf_email_max_file_size_error.rb similarity index 70% rename from lib/redmine_dmsf/errors/dmsf_email_max_file_size_error.rb rename to app/errors/dmsf_email_max_file_size_error.rb index 3224199a..fd37c4bd 100644 --- a/lib/redmine_dmsf/errors/dmsf_email_max_file_size_error.rb +++ b/app/errors/dmsf_email_max_file_size_error.rb @@ -18,19 +18,15 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # max file size error - class DmsfEmailMaxFileSizeError < StandardError - include Redmine::I18n +# Max file size error +class DmsfEmailMaxFileSizeError < StandardError + include Redmine::I18n - def initialize(message = nil) - if message.present? - super - else - super(l(:error_max_email_filesize_exceeded, number: RedmineDmsf.dmsf_max_email_filesize)) - end - end + def initialize(message = nil) + if message.present? + super + else + super(l(:error_max_email_filesize_exceeded, number: RedmineDmsf.dmsf_max_email_filesize)) end end end diff --git a/lib/redmine_dmsf/errors/dmsf_file_not_found_error.rb b/app/errors/dmsf_file_not_found_error.rb similarity index 85% rename from lib/redmine_dmsf/errors/dmsf_file_not_found_error.rb rename to app/errors/dmsf_file_not_found_error.rb index bc4244ab..53acd4d3 100644 --- a/lib/redmine_dmsf/errors/dmsf_file_not_found_error.rb +++ b/app/errors/dmsf_file_not_found_error.rb @@ -18,11 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # Not found error - class DmsfFileNotFoundError < StandardError - # nothing to do - end - end +# Not found error +class DmsfFileNotFoundError < StandardError + # nothing to do end diff --git a/lib/redmine_dmsf/errors/dmsf_lock_error.rb b/app/errors/dmsf_lock_error.rb similarity index 87% rename from lib/redmine_dmsf/errors/dmsf_lock_error.rb rename to app/errors/dmsf_lock_error.rb index 13ae8873..d9d893f0 100644 --- a/lib/redmine_dmsf/errors/dmsf_lock_error.rb +++ b/app/errors/dmsf_lock_error.rb @@ -18,11 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # Lock error - class DmsfLockError < StandardError - # Nothing to do - end - end +# Lock error +class DmsfLockError < StandardError + # Nothing to do end diff --git a/lib/redmine_dmsf/errors/dmsf_parent_error.rb b/app/errors/dmsf_parent_error.rb similarity index 87% rename from lib/redmine_dmsf/errors/dmsf_parent_error.rb rename to app/errors/dmsf_parent_error.rb index 39402731..00a766e0 100644 --- a/lib/redmine_dmsf/errors/dmsf_parent_error.rb +++ b/app/errors/dmsf_parent_error.rb @@ -18,11 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # Parent error - class DmsfParentError < StandardError - # Nothing to do - end - end +# Parent error +class DmsfParentError < StandardError + # Nothing to do end diff --git a/lib/redmine_dmsf/errors/dmsf_zip_max_files_error.rb b/app/errors/dmsf_zip_max_files_error.rb similarity index 71% rename from lib/redmine_dmsf/errors/dmsf_zip_max_files_error.rb rename to app/errors/dmsf_zip_max_files_error.rb index b715097a..35ae5810 100644 --- a/lib/redmine_dmsf/errors/dmsf_zip_max_files_error.rb +++ b/app/errors/dmsf_zip_max_files_error.rb @@ -18,19 +18,15 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -module RedmineDmsf - module Errors - # File count exceeded - class DmsfZipMaxFilesError < StandardError - include Redmine::I18n +# File count exceeded +class DmsfZipMaxFilesError < StandardError + include Redmine::I18n - def initialize(message = nil) - if message.present? - super - else - super(l(:error_max_files_exceeded, number: RedmineDmsf.dmsf_max_file_download)) - end - end + def initialize(message = nil) + if message.present? + super + else + super(l(:error_max_files_exceeded, number: RedmineDmsf.dmsf_max_file_download)) end end end diff --git a/app/helpers/dmsf_upload_helper.rb b/app/helpers/dmsf_upload_helper.rb index 2bdef72b..1d6a7b86 100644 --- a/app/helpers/dmsf_upload_helper.rb +++ b/app/helpers/dmsf_upload_helper.rb @@ -130,7 +130,7 @@ module DmsfUploadHelper wf.notify_users project, new_revision, controller begin file.lock! - rescue RedmineDmsf::Errors::DmsfLockError => e + rescue DmsfLockError => e Rails.logger.warn e.message end else diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 31f2064d..978fe004 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -196,7 +196,7 @@ class DmsfFileRevision < ApplicationRecord end def new_storage_filename - raise RedmineDmsf::Errors::DmsfAccessError, 'File id is not set' unless dmsf_file&.id + raise DmsfAccessError, 'File id is not set' unless dmsf_file&.id filename = DmsfHelper.sanitize_filename(name) timestamp = DateTime.current.strftime('%y%m%d%H%M%S') diff --git a/lib/redmine_dmsf.rb b/lib/redmine_dmsf.rb index cccf0ce2..4539dd40 100644 --- a/lib/redmine_dmsf.rb +++ b/lib/redmine_dmsf.rb @@ -277,15 +277,6 @@ after_easy_init do require "#{File.dirname(__FILE__)}/redmine_dmsf/webdav/resource_proxy" end -# Errors -after_easy_init do - require "#{File.dirname(__FILE__)}/redmine_dmsf/errors/dmsf_access_error" - require "#{File.dirname(__FILE__)}/redmine_dmsf/errors/dmsf_email_max_file_size_error" - require "#{File.dirname(__FILE__)}/redmine_dmsf/errors/dmsf_file_not_found_error" - require "#{File.dirname(__FILE__)}/redmine_dmsf/errors/dmsf_lock_error" - require "#{File.dirname(__FILE__)}/redmine_dmsf/errors/dmsf_zip_max_files_error" -end - # Hooks def require_hooks require "#{File.dirname(__FILE__)}/redmine_dmsf/hooks/controllers/account_controller_hooks" diff --git a/lib/redmine_dmsf/dmsf_zip.rb b/lib/redmine_dmsf/dmsf_zip.rb index ab26874e..f0b4a3ca 100644 --- a/lib/redmine_dmsf/dmsf_zip.rb +++ b/lib/redmine_dmsf/dmsf_zip.rb @@ -48,9 +48,7 @@ module RedmineDmsf end def add_dmsf_file(dmsf_file, member = nil, root_path = nil, path = nil) - unless dmsf_file&.last_revision && File.exist?(dmsf_file.last_revision.disk_file) - raise RedmineDmsf::Errors::DmsfFileNotFoundError - end + raise DmsfFileNotFoundError unless dmsf_file&.last_revision && File.exist?(dmsf_file.last_revision.disk_file) if path string_path = path @@ -77,7 +75,7 @@ module RedmineDmsf def add_attachment(attachment, path) return if @files.include?(path) - raise RedmineDmsf::Errors::DmsfFileNotFoundError unless File.exist?(attachment.diskfile) + raise DmsfFileNotFoundError unless File.exist?(attachment.diskfile) zip_entry = ::Zip::Entry.new(@zip_file, path, nil, nil, nil, nil, nil, nil, ::Zip::DOSTime.at(attachment.created_on)) diff --git a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb index b2372a2c..3cb49cec 100644 --- a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb +++ b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb @@ -206,7 +206,7 @@ module RedmineDmsf wf.notify_users issue.project, revision, context[:controller] begin file.lock! - rescue RedmineDmsf::Errors::DmsfLockError => e + rescue DmsfLockError => e Rails.logger.warn e.message end else diff --git a/lib/redmine_dmsf/lockable.rb b/lib/redmine_dmsf/lockable.rb index 20c37454..07bc5fbe 100644 --- a/lib/redmine_dmsf/lockable.rb +++ b/lib/redmine_dmsf/lockable.rb @@ -44,15 +44,15 @@ module RedmineDmsf def lock!(scope = :scope_exclusive, type = :type_write, expire = nil, owner = nil) # Raise a lock error if entity is locked, but its not at resource level existing = lock(tree: false) - raise RedmineDmsf::Errors::DmsfLockError, l(:error_resource_or_parent_locked) if locked? && existing.empty? + raise DmsfLockError, l(:error_resource_or_parent_locked) if locked? && existing.empty? unless existing.empty? if (existing[0].lock_scope == :scope_shared) && (scope == :scope_shared) # RFC states if an item is exclusively locked and another lock is attempted we reject # if the item is shared locked however, we can always add another lock to it - raise RedmineDmsf::Errors::DmsfLockError, l(:error_parent_locked) if dmsf_folder.locked? + raise DmsfLockError, l(:error_parent_locked) if dmsf_folder.locked? elsif scope == :scope_exclusive - raise RedmineDmsf::Errors::DmsfLockError, l(:error_lock_exclusively) + raise DmsfLockError, l(:error_lock_exclusively) end end l = DmsfLock.new @@ -107,19 +107,19 @@ module RedmineDmsf end def unlock!(force_file_unlock_allowed: false, owner: nil) - raise RedmineDmsf::Errors::DmsfLockError, l(:warning_file_not_locked) unless locked? + raise DmsfLockError, l(:warning_file_not_locked) unless locked? existing = lock(tree: true) destroyed = false # If its empty its a folder that's locked (not root) if existing.empty? || (!dmsf_folder.nil? && dmsf_folder.locked?) - raise RedmineDmsf::Errors::DmsfLockError, l(:error_unlock_parent_locked) + raise DmsfLockError, l(:error_unlock_parent_locked) end # If entity is locked to you, you aren't the lock originator (or named in a shared lock) so deny action # Unless of course you have the rights to force an unlock if locked_for_user? && !User.current.allowed_to?(:force_file_unlock, project) && !force_file_unlock_allowed - raise RedmineDmsf::Errors::DmsfLockError, l(:error_only_user_that_locked_file_can_unlock_it) + raise DmsfLockError, l(:error_only_user_that_locked_file_can_unlock_it) end # Now we need to determine lock type and do the needful diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index ecba00a7..31f4ad7f 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -493,7 +493,7 @@ module RedmineDmsf l = entity.lock!(scope, type, 1.week.from_now, args[:owner]) @response['Lock-Token'] = l.uuid [1.week.to_i, l.uuid] - rescue RedmineDmsf::Errors::DmsfLockError => exception + rescue DmsfLockError => exception e = Dav4rack::LockFailure.new(exception.message) e.add_failure @path, Conflict raise e diff --git a/patches/easy_crm_cases_controller_patch.rb b/patches/easy_crm_cases_controller_patch.rb index 9dbc2242..25509faa 100644 --- a/patches/easy_crm_cases_controller_patch.rb +++ b/patches/easy_crm_cases_controller_patch.rb @@ -81,7 +81,7 @@ module RedmineDmsf wf.notify_users easy_crm_case.project, revision, self begin file.lock! - rescue RedmineDmsf::Errors::DmsfLockError => e + rescue DmsfLockError => e Rails.logger.warn e.message end else diff --git a/test/unit/dmsf_lock_test.rb b/test/unit/dmsf_lock_test.rb index 8ff59a81..824348bd 100644 --- a/test/unit/dmsf_lock_test.rb +++ b/test/unit/dmsf_lock_test.rb @@ -61,13 +61,13 @@ class DmsfLockTest < RedmineDmsf::Test::UnitTest @folder7.lock! User.current = nil assert_no_difference('@folder7.lock.count') do - assert_raise RedmineDmsf::Errors::DmsfLockError do + assert_raise DmsfLockError do @folder7.unlock! end end User.current = @jsmith assert_no_difference('@folder7.lock.count') do - assert_raise RedmineDmsf::Errors::DmsfLockError do + assert_raise DmsfLockError do @folder7.unlock! end end