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"
|
"context"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/filebrowser/filebrowser/v2/settings"
|
|
||||||
"github.com/filebrowser/filebrowser/v2/users"
|
|
||||||
"log"
|
"log"
|
||||||
"math"
|
"math"
|
||||||
"math/big"
|
"math/big"
|
||||||
@ -14,6 +12,9 @@ import (
|
|||||||
|
|
||||||
"github.com/coreos/go-oidc/v3/oidc"
|
"github.com/coreos/go-oidc/v3/oidc"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
|
|
||||||
|
"github.com/filebrowser/filebrowser/v2/settings"
|
||||||
|
"github.com/filebrowser/filebrowser/v2/users"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MethodOIDCAuth is used to identify oidc auth.
|
// 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")
|
flags.Bool("branding.disableUsedPercentage", false, "disable used disk percentage graph")
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint:gocyclo
|
func getDefaultAuther(method settings.AuthMethod, defaults ...interface{}) (map[string]interface{}, settings.AuthMethod) {
|
||||||
func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.AuthMethod, auth.Auther) {
|
var d map[string]interface{}
|
||||||
method := settings.AuthMethod(mustGetString(flags, "auth.method"))
|
|
||||||
|
|
||||||
var defaultAuther map[string]interface{}
|
|
||||||
if len(defaults) > 0 {
|
if len(defaults) > 0 {
|
||||||
if hasAuth := defaults[0]; hasAuth != true {
|
if hasAuth := defaults[0]; hasAuth != true {
|
||||||
for _, arg := range defaults {
|
for _, arg := range defaults {
|
||||||
@ -67,12 +64,20 @@ func getAuthentication(flags *pflag.FlagSet, defaults ...interface{}) (settings.
|
|||||||
case auth.Auther:
|
case auth.Auther:
|
||||||
ms, err := json.Marshal(def)
|
ms, err := json.Marshal(def)
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
err = json.Unmarshal(ms, &defaultAuther)
|
err = json.Unmarshal(ms, &d)
|
||||||
checkErr(err)
|
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
|
var auther auth.Auther
|
||||||
if method == auth.MethodProxyAuth {
|
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 {
|
code, err := initializeAuther(w, r, d, data)
|
||||||
raw, err := d.store.Auth.Get(d.settings.AuthMethod) //nolint:govet
|
if code != 0 {
|
||||||
if err != nil {
|
return code, err
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := json.Marshal(data)
|
b, err := json.Marshal(data)
|
||||||
@ -113,6 +87,41 @@ func handleWithStaticData(w http.ResponseWriter, r *http.Request, d *data, fSys
|
|||||||
return 0, nil
|
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) {
|
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) {
|
index = handle(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
|
||||||
if r.Method != http.MethodGet {
|
if r.Method != http.MethodGet {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user