From 562ad3b0f7698caad1912de1440d2694f7ed212e Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Wed, 30 Nov 2016 14:49:33 +0100 Subject: [PATCH] An attempt to create a folder in the root causes an infinite loop #616 --- lib/redmine_dmsf/webdav/controller.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/redmine_dmsf/webdav/controller.rb b/lib/redmine_dmsf/webdav/controller.rb index 27077884..a9a70e4e 100644 --- a/lib/redmine_dmsf/webdav/controller.rb +++ b/lib/redmine_dmsf/webdav/controller.rb @@ -32,7 +32,14 @@ module RedmineDmsf # exist? returns false if user is anonymous for ProjectResource and DmsfResource, but not for IndexResource. if resource.exist? # resource exists and user is not anonymous. - super + add_dav_header + response['Allow'] = 'OPTIONS,HEAD,GET,PROPFIND' + webdav_setting = Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] + if webdav_setting && (webdav_setting != 'WEBDAV_READ_ONLY') + response['Allow'] << ',PUT,POST,DELETE,PROPPATCH,MKCOL,COPY,MOVE,LOCK,UNLOCK' + end + response['Ms-Author-Via'] = 'DAV' + OK elsif resource.really_exist? && !request.user_agent.nil? && request.user_agent.downcase.include?('microsoft office') && User.current && User.current.anonymous?