From 4526aeeaa999bd91e54d25152b9297d32062c338 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 15 Apr 2017 14:00:41 +0100 Subject: [PATCH] Possibly fix #79 Former-commit-id: 448fc22e05a58cf627cf1f553170a010899b7609 [formerly d4a2c9b18746d2d14ac203c7d71f60251a2d9d18] [formerly 7632da5ecace133715b76d9506cc1b75c89bd659 [formerly 056ea2b8bd3b073887f0fb173b78faa4bce48087]] Former-commit-id: 08e76feb0c947f494ce8c9aaaa6f8b8026b8816c [formerly c4dd6fb80ed0ed9d7890e51d1983ca03adf6b7a2] Former-commit-id: 5d04fdd2c6ed7cf4468cd82909a6605ecbe853ba --- _embed/templates/base.tmpl | 2 +- assets/binary.go.REMOVED.git-id | 2 +- config/commands.go | 2 +- config/config.go | 13 +++++++++++-- filemanager.go | 2 +- page/version.go | 4 ++-- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/_embed/templates/base.tmpl b/_embed/templates/base.tmpl index df68bcd7..01c28bac 100644 --- a/_embed/templates/base.tmpl +++ b/_embed/templates/base.tmpl @@ -14,7 +14,7 @@ diff --git a/assets/binary.go.REMOVED.git-id b/assets/binary.go.REMOVED.git-id index 9393f263..e321474a 100644 --- a/assets/binary.go.REMOVED.git-id +++ b/assets/binary.go.REMOVED.git-id @@ -1 +1 @@ -407ca3a29b2bf1bf0e7fb611b732dffd77ed0083 \ No newline at end of file +4c7f54809aade704e88ae32c81a1287cdbe7c7dc \ No newline at end of file diff --git a/config/commands.go b/config/commands.go index 80eedd60..60c3b881 100644 --- a/config/commands.go +++ b/config/commands.go @@ -36,7 +36,7 @@ func CommandRunner(c *caddy.Controller) (CommandFunc, error) { } fn = func(r *http.Request, c *Config, u *User) error { - path := strings.Replace(r.URL.Path, c.BaseURL+c.WebDavURL, "", 1) + path := strings.Replace(r.URL.Path, c.WebDavURL, "", 1) path = u.Scope + "/" + path path = filepath.Clean(path) diff --git a/config/config.go b/config/config.go index d6124bb1..68795b23 100644 --- a/config/config.go +++ b/config/config.go @@ -31,6 +31,11 @@ func (c Config) AbsoluteURL() string { return c.PrefixURL + c.BaseURL } +// AbsoluteWebdavURL ... +func (c Config) AbsoluteWebdavURL() string { + return c.PrefixURL + c.WebDavURL +} + // Rule is a dissalow/allow rule type Rule struct { Regex bool @@ -88,7 +93,7 @@ func Parse(c *caddy.Controller) ([]Config, error) { cfg.BaseURL = strings.TrimPrefix(cfg.BaseURL, "/") cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/") cfg.BaseURL = "/" + cfg.BaseURL - cfg.WebDavURL = "webdav" + cfg.WebDavURL = "" if cfg.BaseURL == "/" { cfg.BaseURL = "" @@ -234,12 +239,16 @@ func Parse(c *caddy.Controller) ([]Config, error) { } } + if cfg.WebDavURL == "" { + cfg.WebDavURL = "webdav" + } + caddyConf := httpserver.GetConfig(c) cfg.PrefixURL = strings.TrimSuffix(caddyConf.Addr.Path, "/") cfg.WebDavURL = "/" + strings.TrimPrefix(cfg.WebDavURL, "/") cfg.Handler = &webdav.Handler{ - Prefix: cfg.BaseURL + cfg.WebDavURL, + Prefix: cfg.WebDavURL, FileSystem: cfg.FileSystem, LockSystem: webdav.NewMemLS(), } diff --git a/filemanager.go b/filemanager.go index ab508eae..e4325c97 100644 --- a/filemanager.go +++ b/filemanager.go @@ -60,7 +60,7 @@ func (f FileManager) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, err } // Checks if the request URL is for the WebDav server - if httpserver.Path(r.URL.Path).Matches(c.BaseURL + c.WebDavURL) { + if httpserver.Path(r.URL.Path).Matches(c.WebDavURL) { // Checks for user permissions relatively to this PATH if !user.Allowed(strings.TrimPrefix(r.URL.Path, c.WebDavURL)) { return http.StatusForbidden, nil diff --git a/page/version.go b/page/version.go index cb435dec..2c81d95c 100644 --- a/page/version.go +++ b/page/version.go @@ -1,5 +1,5 @@ package page -var GIT_COMMIT_HASH = "37b14d6" +var GIT_COMMIT_HASH = "e46a007" var CIRCLE_BUILD_NUM = "" -var GENERATED int64 = 1492007757358403000 +var GENERATED int64 = 1492261242791293300