From e1209a61482818984cfaf63c5bc5639e53598733 Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Mon, 28 Nov 2016 15:17:26 +0100 Subject: [PATCH] WebDAV: PROPFIND to "/" and "/dmsf" throws FATAL error #598 --- config/routes.rb | 8 ++++++-- lib/redmine_dmsf/webdav/controller.rb | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/config/routes.rb b/config/routes.rb index 34604610..cc7801bf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -112,12 +112,16 @@ RedmineApp::Application.routes.draw do # # DAV4Rack implementation of Webdav - mount DAV4Rack::Handler.new( + dav_engine = DAV4Rack::Handler.new( :root_uri_path => "#{Redmine::Utils::relative_url_root}/dmsf/webdav", :resource_class => RedmineDmsf::Webdav::ResourceProxy, :controller_class => RedmineDmsf::Webdav::Controller, :log_to => Rails.logger - ), :at => '/dmsf/webdav' if defined?(RedmineDmsf) + ) + mount dav_engine, :at => '/dmsf/webdav' + mount dav_engine, :at => '/', :via => :options + mount dav_engine, :at => '/', :via => :propfind + mount dav_engine, :at => '/dmsf', :via => :propfind # Approval workflow resources :dmsf_workflows do diff --git a/lib/redmine_dmsf/webdav/controller.rb b/lib/redmine_dmsf/webdav/controller.rb index 2cc430de..27077884 100644 --- a/lib/redmine_dmsf/webdav/controller.rb +++ b/lib/redmine_dmsf/webdav/controller.rb @@ -71,7 +71,8 @@ module RedmineDmsf # Return response to PROPFIND def propfind - unless(resource.exist?) + return MethodNotAllowed if resource && !resource.public_path.start_with?('/dmsf/webdav') + unless resource.exist? NotFound else # Win7 hack start