refactor: lint
Refactor to statisfy function complexity and max statements linter requirements.
This commit is contained in:
parent
41b29f4b05
commit
aba3b8f100
@ -4,8 +4,6 @@ import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"github.com/filebrowser/filebrowser/v2/settings"
|
||||
"github.com/filebrowser/filebrowser/v2/users"
|
||||
"log"
|
||||
"math"
|
||||
"math/big"
|
||||
@ -14,6 +12,9 @@ import (
|
||||
|
||||
"github.com/coreos/go-oidc/v3/oidc"
|
||||
"golang.org/x/oauth2"
|
||||
|
||||
"github.com/filebrowser/filebrowser/v2/settings"
|
||||
"github.com/filebrowser/filebrowser/v2/users"
|
||||
)
|
||||
|
||||
// MethodOIDCAuth is used to identify oidc auth.
|
||||
|
||||
@ -53,11 +53,8 @@ func addConfigFlags(flags *pflag.FlagSet) {
|
||||
flags.Bool("branding.disableUsedPercentage", false, "disable used disk percentage graph")
|
||||
}
|
||||
|
||||
//nolint:gocyclo
|
||||
func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.AuthMethod, auth.Auther) {
|
||||
method := settings.AuthMethod(mustGetString(flags, "auth.method"))
|
||||
|
||||
var defaultAuther map[string]interface{}
|
||||
func getDefaultAuther(method settings.AuthMethod, defaults ...interface{}) (map[string]interface{}, settings.AuthMethod) {
|
||||
var d map[string]interface{}
|
||||
if len(defaults) > 0 {
|
||||
if hasAuth := defaults[0]; hasAuth != true {
|
||||
for _, arg := range defaults {
|
||||
@ -67,12 +64,20 @@ func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.
|
||||
case auth.Auther:
|
||||
ms, err := json.Marshal(def)
|
||||
checkErr(err)
|
||||
err = json.Unmarshal(ms, &defaultAuther)
|
||||
err = json.Unmarshal(ms, &d)
|
||||
checkErr(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return d, method
|
||||
}
|
||||
|
||||
//nolint:gocyclo
|
||||
func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.AuthMethod, auth.Auther) {
|
||||
method := settings.AuthMethod(mustGetString(flags, "auth.method"))
|
||||
|
||||
defaultAuther, method := getDefaultAuther(method, defaults)
|
||||
|
||||
var auther auth.Auther
|
||||
if method == auth.MethodProxyAuth {
|
||||
|
||||
@ -59,35 +59,9 @@ func handleWithStaticData(w http.ResponseWriter, r *http.Request, d *data, fSys
|
||||
}
|
||||
}
|
||||
|
||||
if d.settings.AuthMethod == auth.MethodJSONAuth {
|
||||
raw, err := d.store.Auth.Get(d.settings.AuthMethod) //nolint:govet
|
||||
if err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
|
||||
auther := raw.(*auth.JSONAuth)
|
||||
|
||||
if auther.ReCaptcha != nil {
|
||||
data["ReCaptcha"] = auther.ReCaptcha.Key != "" && auther.ReCaptcha.Secret != ""
|
||||
data["ReCaptchaHost"] = auther.ReCaptcha.Host
|
||||
data["ReCaptchaKey"] = auther.ReCaptcha.Key
|
||||
}
|
||||
}
|
||||
|
||||
if d.settings.AuthMethod == auth.MethodOIDCAuth {
|
||||
raw, err := d.store.Auth.Get(d.settings.AuthMethod) //nolint:govet
|
||||
if err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
|
||||
auther := raw.(*auth.OIDCAuth)
|
||||
cookie, _ := r.Cookie("auth")
|
||||
public := strings.HasPrefix(r.URL.Path, "/share/") && r.Method == "GET"
|
||||
|
||||
if cookie == nil && !public {
|
||||
auther.OIDC.InitAuthFlow(w, r)
|
||||
return 0, nil
|
||||
}
|
||||
code, err := initializeAuther(w, r, d, data)
|
||||
if code != 0 {
|
||||
return code, err
|
||||
}
|
||||
|
||||
b, err := json.Marshal(data)
|
||||
@ -113,6 +87,41 @@ func handleWithStaticData(w http.ResponseWriter, r *http.Request, d *data, fSys
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
func initializeAuther(w http.ResponseWriter, r *http.Request, d *data, data map[string]interface{}) (int, error) {
|
||||
if d.settings.AuthMethod == auth.MethodJSONAuth {
|
||||
raw, err := d.store.Auth.Get(d.settings.AuthMethod)
|
||||
if err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
|
||||
auther := raw.(*auth.JSONAuth)
|
||||
|
||||
if auther.ReCaptcha != nil {
|
||||
data["ReCaptcha"] = auther.ReCaptcha.Key != "" && auther.ReCaptcha.Secret != ""
|
||||
data["ReCaptchaHost"] = auther.ReCaptcha.Host
|
||||
data["ReCaptchaKey"] = auther.ReCaptcha.Key
|
||||
}
|
||||
}
|
||||
|
||||
if d.settings.AuthMethod == auth.MethodOIDCAuth {
|
||||
raw, err := d.store.Auth.Get(d.settings.AuthMethod)
|
||||
if err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
|
||||
auther := raw.(*auth.OIDCAuth)
|
||||
cookie, _ := r.Cookie("auth")
|
||||
public := strings.HasPrefix(r.URL.Path, "/share/") && r.Method == "GET"
|
||||
|
||||
if cookie == nil && !public {
|
||||
auther.OIDC.InitAuthFlow(w, r)
|
||||
return 0, nil
|
||||
}
|
||||
}
|
||||
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
func getStaticHandlers(store *storage.Storage, server *settings.Server, assetsFs fs.FS) (index, static http.Handler) {
|
||||
index = handle(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
|
||||
if r.Method != http.MethodGet {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user