Usign webdav

This commit is contained in:
Henrique Dias 2016-10-17 21:52:33 +01:00
parent 86b06b3f06
commit 509c59fc3f
2 changed files with 17 additions and 2 deletions

View File

@ -122,8 +122,6 @@ func Parse(c *caddy.Controller) ([]Config, error) {
FileSystem: webdav.Dir(cfg.PathScope), FileSystem: webdav.Dir(cfg.PathScope),
LockSystem: webdav.NewMemLS(), LockSystem: webdav.NewMemLS(),
} }
// TODO
case "show": case "show":
if !c.NextArg() { if !c.NextArg() {
return configs, c.ArgErr() return configs, c.ArgErr()

View File

@ -58,6 +58,23 @@ func (f FileManager) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, err
} }
if c.WebDav && strings.HasPrefix(r.URL.Path, c.WebDavURL) { if c.WebDav && strings.HasPrefix(r.URL.Path, c.WebDavURL) {
url := strings.TrimPrefix(r.URL.Path, c.WebDavURL)
if !user.Allowed(url) {
return http.StatusForbidden, nil
}
switch r.Method {
case "PROPPATCH", "MOVE", "PATCH", "PUT", "DELETE":
if !user.AllowEdit {
return http.StatusForbidden, nil
}
case "MKCOL", "COPY":
if !user.AllowNew {
return http.StatusForbidden, nil
}
}
c.WebDavHandler.ServeHTTP(w, r) c.WebDavHandler.ServeHTTP(w, r)
return 0, nil return 0, nil
} }