diff --git a/README.md b/README.md index d75c1241..2c986cb8 100644 --- a/README.md +++ b/README.md @@ -8,15 +8,26 @@ This package is a plugin for Caddy server that provides an online file manager (based on browse middleware) that is able to: rename files, delete files and upload files. Some new features that can be implemented in the future can be seen at [issues](https://github.com/hacdias/caddy-filemanager/issues). +### Syntax + ``` -filemanager { - show path - on url - styles filepath - frontmatter type +filemanager url { + show path + styles filepath + frontmatter type + allow_new [true|false] + allow_edit [true|false] + allow_commands [true|false] + allow_command command + block_command command + allow [path|dotfiles] + allow_r path regex + block [path|dotfiles] + block_r path regex } ``` + ## NOTE FOR DEVELOPERS You need to run `go generate` on `$GOPATH/src/github.com/hacdias/caddy-filemanager` before building any binary. Otherwise, you will receive an `undefined: Asset` error. diff --git a/assets/assets.go b/assets/assets.go index 5ed75ea6..2c4744c2 100644 --- a/assets/assets.go +++ b/assets/assets.go @@ -10,7 +10,7 @@ import ( ) // BaseURL is the url of the assets -const BaseURL = "_filemanagerinternal" +const BaseURL = "/_filemanagerinternal" // Serve provides the needed assets for the front-end func Serve(w http.ResponseWriter, r *http.Request, c *config.Config) (int, error) { diff --git a/config/config.go b/config/config.go index 0f65e9c0..c0698a0b 100644 --- a/config/config.go +++ b/config/config.go @@ -70,12 +70,20 @@ func Parse(c *caddy.Controller) ([]Config, error) { Regexp: regexp.MustCompile("\\/\\..+"), }} + // Get the baseURL + args := c.RemainingArgs() + + if len(args) > 0 { + cfg.BaseURL = args[0] + } + // Set the first user, the global user user = cfg.User for c.NextBlock() { switch c.Val() { case "on": + // NOTE: DEPRECATED if !c.NextArg() { return configs, c.ArgErr() } @@ -212,6 +220,10 @@ func Parse(c *caddy.Controller) ([]Config, error) { cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/") cfg.BaseURL = "/" + cfg.BaseURL + if cfg.BaseURL == "/" { + cfg.BaseURL = "" + } + caddyConf := httpserver.GetConfig(c) cfg.AbsoluteURL = strings.TrimSuffix(caddyConf.Addr.Path, "/") + "/" + cfg.BaseURL cfg.AbsoluteURL = strings.Replace(cfg.AbsoluteURL, "//", "/", -1)