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