Fix: unable to save office file in root directory of WebDAV

This commit is contained in:
HFO4
2019-12-21 18:32:13 +08:00
parent bb27d1d587
commit cf90ab5a9a
6 changed files with 77 additions and 35 deletions

View File

@@ -1,7 +1,6 @@
package controllers
import (
model "github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/filesystem"
"github.com/HFO4/cloudreve/pkg/util"
"github.com/HFO4/cloudreve/pkg/webdav"
@@ -12,18 +11,17 @@ var handler *webdav.Handler
func init() {
handler = &webdav.Handler{
Prefix: "/dav/",
Prefix: "/dav",
LockSystem: make(map[uint]webdav.LockSystem),
}
}
// ServeWebDAV 处理WebDAV相关请求
func ServeWebDAV(c *gin.Context) {
// 测试用user
user, _ := model.GetUserByID(1)
c.Set("user", &user)
fs, err := filesystem.NewFileSystemFromContext(c)
if err != nil {
util.Log().Panic("%s", err)
util.Log().Warning("无法为WebDAV初始化文件系统%s", err)
return
}
handler.ServeHTTP(c.Writer, c.Request, fs)

View File

@@ -11,21 +11,18 @@ import (
// initWebDAV 初始化WebDAV相关路由
func initWebDAV(group *gin.RouterGroup) {
{
group.Any("", func(context *gin.Context) {
context.Status(403)
context.Abort()
})
group.Use(middleware.WebDAVAuth())
group.Any(":uid/*path", controllers.ServeWebDAV)
group.Any(":uid", controllers.ServeWebDAV)
group.Handle("PROPFIND", ":uid/*path", controllers.ServeWebDAV)
group.Handle("PROPFIND", ":uid", controllers.ServeWebDAV)
group.Handle("MKCOL", ":uid/*path", controllers.ServeWebDAV)
group.Handle("LOCK", ":uid/*path", controllers.ServeWebDAV)
group.Handle("UNLOCK", ":uid/*path", controllers.ServeWebDAV)
group.Handle("PROPPATCH", ":uid/*path", controllers.ServeWebDAV)
group.Handle("COPY", ":uid/*path", controllers.ServeWebDAV)
group.Handle("MOVE", ":uid/*path", controllers.ServeWebDAV)
group.Any("/*path", controllers.ServeWebDAV)
group.Any("", controllers.ServeWebDAV)
group.Handle("PROPFIND", "/*path", controllers.ServeWebDAV)
group.Handle("PROPFIND", "", controllers.ServeWebDAV)
group.Handle("MKCOL", "/*path", controllers.ServeWebDAV)
group.Handle("LOCK", "/*path", controllers.ServeWebDAV)
group.Handle("UNLOCK", "/*path", controllers.ServeWebDAV)
group.Handle("PROPPATCH", "/*path", controllers.ServeWebDAV)
group.Handle("COPY", "/*path", controllers.ServeWebDAV)
group.Handle("MOVE", "/*path", controllers.ServeWebDAV)
}
}