From ca7f37a6faaaafe8392ddeca21cb8d774c3679f3 Mon Sep 17 00:00:00 2001 From: 1138-4EB <1138-4EB@users.noreply.github.com> Date: Mon, 7 Jan 2019 22:59:49 +0100 Subject: [PATCH] fix build and lint errors --- cmd/config_set.go | 1 - cmd/root.go | 5 +++-- cmd/rules.go | 5 ++++- cmd/users_update.go | 7 ++++--- cmd/utils.go | 3 ++- http/auth.go | 2 +- settings/runtime.go | 30 +++++++++++++++--------------- settings/storage.go | 16 ++++++++++++---- storage/bolt/importer/conf.go | 6 ++++-- 9 files changed, 45 insertions(+), 30 deletions(-) diff --git a/cmd/config_set.go b/cmd/config_set.go index e69d9b49..b1e6388f 100644 --- a/cmd/config_set.go +++ b/cmd/config_set.go @@ -44,7 +44,6 @@ you want to change.`, getUserDefaults(cmd, &s.Defaults, false) var auther auth.Auther - var err error if hasAuth { s.AuthMethod, auther = getAuthentication(cmd) err = d.store.Auth.Save(auther) diff --git a/cmd/root.go b/cmd/root.go index d379456a..553ecbf9 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -159,7 +159,8 @@ user created with the credentials from options "username" and "password".`, }, pythonConfig{allowNoDB: true}), } -func runtimeNonDefaults() (m map[string]string) { +func runtimeNonDefaults() map[string]string { + m := map[string]string{} for k, d := range settings.RuntimeDefaults { if x, ok := settings.RuntimeCfg[k]; ok && (x != d) { log.Println(fmt.Sprintf("Non-default value for key '%s': %s [default: %s]", k, x, d)) @@ -170,7 +171,7 @@ func runtimeNonDefaults() (m map[string]string) { log.Println("Generate random 256 bit key") m["key"] = string(generateRandomBytes(64)) // 256 bit } - return + return m } func quickSetup(d pythonData) { diff --git a/cmd/rules.go b/cmd/rules.go index 1af5fd5b..12a3c6b7 100644 --- a/cmd/rules.go +++ b/cmd/rules.go @@ -42,8 +42,11 @@ func runRules(st *storage.Storage, cmd *cobra.Command, users func(*users.User), return } + s, err := st.Settings.Get() + checkErr(err) + if global != nil { - global(settings) + global(s) } printRules(s.Rules, id) diff --git a/cmd/users_update.go b/cmd/users_update.go index 1c42c87f..c5a85395 100644 --- a/cmd/users_update.go +++ b/cmd/users_update.go @@ -25,10 +25,11 @@ options you want to change.`, password := mustGetString(cmd, "password") newUsername := mustGetString(cmd, "username") - var err error - var user *users.User + var ( + err error + user *users.User + ) - var err error if id != 0 { user, err = d.store.Users.Get("", id) } else { diff --git a/cmd/utils.go b/cmd/utils.go index 5f209685..ae364ce7 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -6,6 +6,7 @@ import ( "os" "github.com/asdine/storm" + "github.com/filebrowser/filebrowser/v2/settings" "github.com/filebrowser/filebrowser/v2/storage" "github.com/filebrowser/filebrowser/v2/storage/bolt" "github.com/spf13/cobra" @@ -86,7 +87,7 @@ func python(fn pythonFunc, cfg pythonConfig) cobraFunc { return func(cmd *cobra.Command, args []string) { data := pythonData{hadDB: true} - path := v.GetString("database") + path := settings.RuntimeCfg["database"] _, err := os.Stat(path) if os.IsNotExist(err) { diff --git a/http/auth.go b/http/auth.go index 590caf67..874bdad9 100644 --- a/http/auth.go +++ b/http/auth.go @@ -92,7 +92,7 @@ var loginHandler = func(w http.ResponseWriter, r *http.Request, d *data) (int, e return http.StatusInternalServerError, err } - user, err := auther.Auth(r, d.store.Users, d.Settings.Root) + user, err := auther.Auth(r, d.store.Users, settings.RuntimeCfg["root"]) if err == os.ErrPermission { return http.StatusForbidden, nil } else if err != nil { diff --git a/settings/runtime.go b/settings/runtime.go index 0109b830..3c700b20 100644 --- a/settings/runtime.go +++ b/settings/runtime.go @@ -1,15 +1,15 @@ -package settings - -// RuntimeDefaults defines default values for runtime parameters -var RuntimeDefaults = map[string]string{ - "root": ".", - "baseurl": "", - "address": "127.0.0.1", - "port": "8080", - "cert": "", - "key": "", - "log": "stdout", -} - -// RuntimeCfg contains parameters to be used at runtime -var RuntimeCfg = map[string]string{} +package settings + +// RuntimeDefaults defines default values for runtime parameters +var RuntimeDefaults = map[string]string{ + "root": ".", + "baseurl": "", + "address": "127.0.0.1", + "port": "8080", + "cert": "", + "key": "", + "log": "stdout", +} + +// RuntimeCfg contains parameters to be used at runtime +var RuntimeCfg = map[string]string{} diff --git a/settings/storage.go b/settings/storage.go index 7cf354bd..97bb2b2d 100644 --- a/settings/storage.go +++ b/settings/storage.go @@ -1,6 +1,9 @@ package settings import ( + "strings" + + "github.com/filebrowser/filebrowser/v2/errors" "github.com/filebrowser/filebrowser/v2/rules" "github.com/filebrowser/filebrowser/v2/users" ) @@ -36,13 +39,18 @@ var defaultEvents = []string{ // Save saves the settings for the current instance. func (s *Storage) Save(set *Settings) error { - /* - set.BaseURL = strings.TrimSuffix(set.BaseURL, "/") + if u, ok := set.Runtime["baseurl"]; ok { + set.Runtime["baseurl"] = strings.TrimSuffix(u, "/") + } - if len(set.Key) == 0 { + if k, ok := set.Runtime["key"]; ok { + if len(k) == 0 { return errors.ErrEmptyKey } - */ + } else { + return errors.ErrEmptyKey + } + if set.Defaults.Locale == "" { set.Defaults.Locale = "en" } diff --git a/storage/bolt/importer/conf.go b/storage/bolt/importer/conf.go index c7d7917c..e5826d20 100644 --- a/storage/bolt/importer/conf.go +++ b/storage/bolt/importer/conf.go @@ -109,8 +109,10 @@ func importConf(db *storm.DB, path string, sto *storage.Storage) error { } s := &settings.Settings{ - //Key: key, - //BaseURL: cfg.BaseURL, + Runtime: map[string]string{ + "key": string(key), + "baseurl": cfg.BaseURL, + }, Signup: false, Defaults: settings.UserDefaults{ Scope: cfg.Defaults.Scope,