Possibly fix #79
parent
e46a007c71
commit
056ea2b8bd
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var user = JSON.parse('{{ Marshal .User }}'),
|
var user = JSON.parse('{{ Marshal .User }}'),
|
||||||
webdavURL = "{{.Config.AbsoluteURL}}{{.Config.WebDavURL}}",
|
webdavURL = "{{.Config.AbsoluteWebdavURL }}",
|
||||||
baseURL = "{{.Config.AbsoluteURL}}",
|
baseURL = "{{.Config.AbsoluteURL}}",
|
||||||
prefixURL = "{{ .Config.PrefixURL }}";
|
prefixURL = "{{ .Config.PrefixURL }}";
|
||||||
</script>
|
</script>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -36,7 +36,7 @@ func CommandRunner(c *caddy.Controller) (CommandFunc, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn = func(r *http.Request, c *Config, u *User) 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 = u.Scope + "/" + path
|
||||||
path = filepath.Clean(path)
|
path = filepath.Clean(path)
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,11 @@ func (c Config) AbsoluteURL() string {
|
||||||
return c.PrefixURL + c.BaseURL
|
return c.PrefixURL + c.BaseURL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AbsoluteWebdavURL ...
|
||||||
|
func (c Config) AbsoluteWebdavURL() string {
|
||||||
|
return c.PrefixURL + c.WebDavURL
|
||||||
|
}
|
||||||
|
|
||||||
// Rule is a dissalow/allow rule
|
// Rule is a dissalow/allow rule
|
||||||
type Rule struct {
|
type Rule struct {
|
||||||
Regex bool
|
Regex bool
|
||||||
|
@ -88,7 +93,7 @@ func Parse(c *caddy.Controller) ([]Config, error) {
|
||||||
cfg.BaseURL = strings.TrimPrefix(cfg.BaseURL, "/")
|
cfg.BaseURL = strings.TrimPrefix(cfg.BaseURL, "/")
|
||||||
cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/")
|
cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/")
|
||||||
cfg.BaseURL = "/" + cfg.BaseURL
|
cfg.BaseURL = "/" + cfg.BaseURL
|
||||||
cfg.WebDavURL = "webdav"
|
cfg.WebDavURL = ""
|
||||||
|
|
||||||
if cfg.BaseURL == "/" {
|
if cfg.BaseURL == "/" {
|
||||||
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)
|
caddyConf := httpserver.GetConfig(c)
|
||||||
|
|
||||||
cfg.PrefixURL = strings.TrimSuffix(caddyConf.Addr.Path, "/")
|
cfg.PrefixURL = strings.TrimSuffix(caddyConf.Addr.Path, "/")
|
||||||
cfg.WebDavURL = "/" + strings.TrimPrefix(cfg.WebDavURL, "/")
|
cfg.WebDavURL = "/" + strings.TrimPrefix(cfg.WebDavURL, "/")
|
||||||
cfg.Handler = &webdav.Handler{
|
cfg.Handler = &webdav.Handler{
|
||||||
Prefix: cfg.BaseURL + cfg.WebDavURL,
|
Prefix: cfg.WebDavURL,
|
||||||
FileSystem: cfg.FileSystem,
|
FileSystem: cfg.FileSystem,
|
||||||
LockSystem: webdav.NewMemLS(),
|
LockSystem: webdav.NewMemLS(),
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
// 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
|
// Checks for user permissions relatively to this PATH
|
||||||
if !user.Allowed(strings.TrimPrefix(r.URL.Path, c.WebDavURL)) {
|
if !user.Allowed(strings.TrimPrefix(r.URL.Path, c.WebDavURL)) {
|
||||||
return http.StatusForbidden, nil
|
return http.StatusForbidden, nil
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
package page
|
package page
|
||||||
|
|
||||||
var GIT_COMMIT_HASH = "37b14d6"
|
var GIT_COMMIT_HASH = "e46a007"
|
||||||
var CIRCLE_BUILD_NUM = ""
|
var CIRCLE_BUILD_NUM = ""
|
||||||
var GENERATED int64 = 1492007757358403000
|
var GENERATED int64 = 1492261242791293300
|
||||||
|
|
Loading…
Reference in New Issue