Compare commits

...

9 Commits

Author SHA1 Message Date
Henrique Dias
40f29e1e9b chore: version v2.0.10 2019-05-20 21:55:30 +01:00
Henrique Dias
a036a25e1d fix: compile for linux/amd64 2019-05-20 21:44:21 +01:00
Henrique Dias
abed362dc5 Make --auth.method parameter optional when changing auth parameters Fixes: #715 (#732)
Make --auth.method parameter optional when changing auth parameters Fixes: #715
2019-05-20 18:45:12 +01:00
cnone
ce78299464 Fix panic with checkerr 2019-05-20 19:20:41 +03:00
cnone
030f6607f0 Refactor the code 2019-05-20 04:55:36 +03:00
cnone
c3a4e33245 Fix linter issue 2019-05-19 22:05:42 +03:00
cnone
aabf0843ab Make auth parameters optional 2019-05-19 22:03:26 +03:00
cnone
748e4acfb6 Fix empty json auth parameter bug 2019-05-19 17:31:25 +03:00
cnone
6e48a6b512 Make --auth.method parameter optional Fixes: #715 2019-05-19 17:13:34 +03:00
3 changed files with 51 additions and 20 deletions

View File

@@ -34,7 +34,7 @@ jobs:
at: '~/project'
- run:
name: "Compile"
command: ./wizard.sh -c
command: GOOS=linux GOARCH=amd64 ./wizard.sh -c
- run:
name: "Cleanup"
command: |

View File

@@ -44,15 +44,37 @@ func addConfigFlags(flags *pflag.FlagSet) {
flags.Bool("branding.disableExternal", false, "disable external links such as GitHub links")
}
func getAuthentication(flags *pflag.FlagSet) (settings.AuthMethod, auth.Auther) {
func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.AuthMethod, auth.Auther) {
method := settings.AuthMethod(mustGetString(flags, "auth.method"))
var defaultAuther map[string]interface{}
if len(defaults) > 0 {
if hasAuth := defaults[0]; hasAuth != true {
for _, arg := range defaults {
switch def := arg.(type) {
case *settings.Settings:
method = settings.AuthMethod(def.AuthMethod)
case auth.Auther:
ms, err := json.Marshal(def)
checkErr(err)
json.Unmarshal(ms, &defaultAuther)
}
}
}
}
var auther auth.Auther
if method == auth.MethodProxyAuth {
header := mustGetString(flags, "auth.header")
if header == "" {
panic(nerrors.New("you must set the flag 'auth.header' for method 'proxy'"))
header = defaultAuther["header"].(string)
}
if header == "" {
checkErr(nerrors.New("you must set the flag 'auth.header' for method 'proxy'"))
}
auther = &auth.ProxyAuth{Header: header}
}
@@ -62,17 +84,28 @@ func getAuthentication(flags *pflag.FlagSet) (settings.AuthMethod, auth.Auther)
if method == auth.MethodJSONAuth {
jsonAuth := &auth.JSONAuth{}
host := mustGetString(flags, "recaptcha.host")
key := mustGetString(flags, "recaptcha.key")
secret := mustGetString(flags, "recaptcha.secret")
if key != "" && secret != "" {
jsonAuth.ReCaptcha = &auth.ReCaptcha{
Host: host,
Key: key,
Secret: secret,
}
if key == "" {
kmap := defaultAuther["recaptcha"].(map[string]interface{})
key = kmap["key"].(string)
}
if secret == "" {
smap := defaultAuther["recaptcha"].(map[string]interface{})
secret = smap["secret"].(string)
}
if key == "" || secret == "" {
checkErr(nerrors.New("you must set the flag 'recaptcha.key' and 'recaptcha.secret' for method 'json'"))
}
jsonAuth.ReCaptcha = &auth.ReCaptcha{
Host: host,
Key: key,
Secret: secret,
}
auther = jsonAuth

View File

@@ -3,7 +3,6 @@ package cmd
import (
"strings"
"github.com/filebrowser/filebrowser/v2/auth"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
@@ -63,16 +62,15 @@ you want to change. Other options will remain unchanged.`,
getUserDefaults(flags, &set.Defaults, false)
var auther auth.Auther
if hasAuth {
set.AuthMethod, auther = getAuthentication(flags)
err = d.store.Auth.Save(auther)
checkErr(err)
} else {
auther, err = d.store.Auth.Get(set.AuthMethod)
checkErr(err)
}
// read the defaults
auther, err := d.store.Auth.Get(set.AuthMethod)
checkErr(err)
// check if there are new flags for existing auth method
set.AuthMethod, auther = getAuthentication(flags, hasAuth, set, auther)
err = d.store.Auth.Save(auther)
checkErr(err)
err = d.store.Settings.Save(set)
checkErr(err)
err = d.store.Settings.SaveServer(ser)