Possibly fix #79

Former-commit-id: 448fc22e05a58cf627cf1f553170a010899b7609 [formerly d4a2c9b18746d2d14ac203c7d71f60251a2d9d18] [formerly 7632da5ecace133715b76d9506cc1b75c89bd659 [formerly 056ea2b8bd]]
Former-commit-id: 08e76feb0c947f494ce8c9aaaa6f8b8026b8816c [formerly c4dd6fb80ed0ed9d7890e51d1983ca03adf6b7a2]
Former-commit-id: 5d04fdd2c6ed7cf4468cd82909a6605ecbe853ba
pull/726/head
Henrique Dias 2017-04-15 14:00:41 +01:00
parent 1c3d4870ab
commit 4526aeeaa9
6 changed files with 17 additions and 8 deletions

View File

@ -14,7 +14,7 @@
<script>
var user = JSON.parse('{{ Marshal .User }}'),
webdavURL = "{{.Config.AbsoluteURL}}{{.Config.WebDavURL}}",
webdavURL = "{{.Config.AbsoluteWebdavURL }}",
baseURL = "{{.Config.AbsoluteURL}}",
prefixURL = "{{ .Config.PrefixURL }}";
</script>

View File

@ -1 +1 @@
407ca3a29b2bf1bf0e7fb611b732dffd77ed0083
4c7f54809aade704e88ae32c81a1287cdbe7c7dc

View File

@ -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)

View File

@ -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(),
}

View File

@ -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

View File

@ -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