X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1d1c6de3c842a33a57b7d469fdaaaa1b873433dc..19ae770973482257117fe8ded5619c3018c4b60f:/services/keep-web/anonymous.go?ds=sidebyside diff --git a/services/keep-web/anonymous.go b/services/keep-web/anonymous.go index bfc716f2b2..15a98c2f36 100644 --- a/services/keep-web/anonymous.go +++ b/services/keep-web/anonymous.go @@ -3,22 +3,33 @@ package main import ( "flag" "fmt" + "os" + "strconv" ) var anonymousTokens tokenSet type tokenSet []string -func (ts *tokenSet) Set(t string) error { - *ts = append(*ts, t) - return nil +func (ts *tokenSet) Set(s string) error { + v, err := strconv.ParseBool(s) + if v && len(*ts) == 0 { + *ts = append(*ts, os.Getenv("ARVADOS_API_TOKEN")) + } else if !v { + *ts = (*ts)[:0] + } + return err } func (ts *tokenSet) String() string { - return fmt.Sprintf("%+v", (*ts)[:]) + return fmt.Sprintf("%v", len(*ts) > 0) +} + +func (ts *tokenSet) IsBoolFlag() bool { + return true } func init() { - flag.Var(&anonymousTokens, "anonymous-token", - "API token to try when none of the tokens provided in an HTTP request succeed in reading the desired collection. Multiple anonymous tokens can be provided by using this flag more than once; each token will be attempted in turn until one works.") + flag.Var(&anonymousTokens, "allow-anonymous", + "Serve public data to anonymous clients. Try the token supplied in the ARVADOS_API_TOKEN environment variable when none of the tokens provided in an HTTP request succeed in reading the desired collection.") }