mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-02-27 19:32:00 +00:00
refactor: simplify build paths func and better slice handling
This commit is contained in:
22
.env.example
22
.env.example
@@ -17,11 +17,11 @@ TINYAUTH_SERVER_ADDRESS=0.0.0.0
|
|||||||
# The path to the Unix socket.
|
# The path to the Unix socket.
|
||||||
TINYAUTH_SERVER_SOCKETPATH=
|
TINYAUTH_SERVER_SOCKETPATH=
|
||||||
# List of allowed IPs or CIDR ranges.
|
# List of allowed IPs or CIDR ranges.
|
||||||
TINYAUTH_AUTH_IP_ALLOW=[]
|
TINYAUTH_AUTH_IP_ALLOW=
|
||||||
# List of blocked IPs or CIDR ranges.
|
# List of blocked IPs or CIDR ranges.
|
||||||
TINYAUTH_AUTH_IP_BLOCK=[]
|
TINYAUTH_AUTH_IP_BLOCK=
|
||||||
# Comma-separated list of users (username:hashed_password).
|
# Comma-separated list of users (username:hashed_password).
|
||||||
TINYAUTH_AUTH_USERS=[]
|
TINYAUTH_AUTH_USERS=
|
||||||
# Path to the users file.
|
# Path to the users file.
|
||||||
TINYAUTH_AUTH_USERSFILE=
|
TINYAUTH_AUTH_USERSFILE=
|
||||||
# Enable secure cookies.
|
# Enable secure cookies.
|
||||||
@@ -35,7 +35,7 @@ TINYAUTH_AUTH_LOGINTIMEOUT=300
|
|||||||
# Maximum login retries.
|
# Maximum login retries.
|
||||||
TINYAUTH_AUTH_LOGINMAXRETRIES=3
|
TINYAUTH_AUTH_LOGINMAXRETRIES=3
|
||||||
# Comma-separated list of trusted proxy addresses.
|
# Comma-separated list of trusted proxy addresses.
|
||||||
TINYAUTH_AUTH_TRUSTEDPROXIES=[]
|
TINYAUTH_AUTH_TRUSTEDPROXIES=
|
||||||
# The domain of the app.
|
# The domain of the app.
|
||||||
TINYAUTH_APPS_[NAME]_CONFIG_DOMAIN=
|
TINYAUTH_APPS_[NAME]_CONFIG_DOMAIN=
|
||||||
# Comma-separated list of allowed users.
|
# Comma-separated list of allowed users.
|
||||||
@@ -47,13 +47,13 @@ TINYAUTH_APPS_[NAME]_OAUTH_WHITELIST=
|
|||||||
# Comma-separated list of required OAuth groups.
|
# Comma-separated list of required OAuth groups.
|
||||||
TINYAUTH_APPS_[NAME]_OAUTH_GROUPS=
|
TINYAUTH_APPS_[NAME]_OAUTH_GROUPS=
|
||||||
# List of allowed IPs or CIDR ranges.
|
# List of allowed IPs or CIDR ranges.
|
||||||
TINYAUTH_APPS_[NAME]_IP_ALLOW=[]
|
TINYAUTH_APPS_[NAME]_IP_ALLOW=
|
||||||
# List of blocked IPs or CIDR ranges.
|
# List of blocked IPs or CIDR ranges.
|
||||||
TINYAUTH_APPS_[NAME]_IP_BLOCK=[]
|
TINYAUTH_APPS_[NAME]_IP_BLOCK=
|
||||||
# List of IPs or CIDR ranges that bypass authentication.
|
# List of IPs or CIDR ranges that bypass authentication.
|
||||||
TINYAUTH_APPS_[NAME]_IP_BYPASS=[]
|
TINYAUTH_APPS_[NAME]_IP_BYPASS=
|
||||||
# Custom headers to add to the response.
|
# Custom headers to add to the response.
|
||||||
TINYAUTH_APPS_[NAME]_RESPONSE_HEADERS=[]
|
TINYAUTH_APPS_[NAME]_RESPONSE_HEADERS=
|
||||||
# Basic auth username.
|
# Basic auth username.
|
||||||
TINYAUTH_APPS_[NAME]_RESPONSE_BASICAUTH_USERNAME=
|
TINYAUTH_APPS_[NAME]_RESPONSE_BASICAUTH_USERNAME=
|
||||||
# Basic auth password.
|
# Basic auth password.
|
||||||
@@ -67,7 +67,7 @@ TINYAUTH_APPS_[NAME]_PATH_BLOCK=
|
|||||||
# Comma-separated list of required LDAP groups.
|
# Comma-separated list of required LDAP groups.
|
||||||
TINYAUTH_APPS_[NAME]_LDAP_GROUPS=
|
TINYAUTH_APPS_[NAME]_LDAP_GROUPS=
|
||||||
# Comma-separated list of allowed OAuth domains.
|
# Comma-separated list of allowed OAuth domains.
|
||||||
TINYAUTH_OAUTH_WHITELIST=[]
|
TINYAUTH_OAUTH_WHITELIST=
|
||||||
# The OAuth provider to use for automatic redirection.
|
# The OAuth provider to use for automatic redirection.
|
||||||
TINYAUTH_OAUTH_AUTOREDIRECT=
|
TINYAUTH_OAUTH_AUTOREDIRECT=
|
||||||
# OAuth client ID.
|
# OAuth client ID.
|
||||||
@@ -77,7 +77,7 @@ TINYAUTH_OAUTH_PROVIDERS_[NAME]_CLIENTSECRET=
|
|||||||
# Path to the file containing the OAuth client secret.
|
# Path to the file containing the OAuth client secret.
|
||||||
TINYAUTH_OAUTH_PROVIDERS_[NAME]_CLIENTSECRETFILE=
|
TINYAUTH_OAUTH_PROVIDERS_[NAME]_CLIENTSECRETFILE=
|
||||||
# OAuth scopes.
|
# OAuth scopes.
|
||||||
TINYAUTH_OAUTH_PROVIDERS_[NAME]_SCOPES=[]
|
TINYAUTH_OAUTH_PROVIDERS_[NAME]_SCOPES=
|
||||||
# OAuth redirect URL.
|
# OAuth redirect URL.
|
||||||
TINYAUTH_OAUTH_PROVIDERS_[NAME]_REDIRECTURL=
|
TINYAUTH_OAUTH_PROVIDERS_[NAME]_REDIRECTURL=
|
||||||
# OAuth authorization URL.
|
# OAuth authorization URL.
|
||||||
@@ -103,7 +103,7 @@ TINYAUTH_OIDC_CLIENTS_[NAME]_CLIENTSECRET=
|
|||||||
# Path to the file containing the OIDC client secret.
|
# Path to the file containing the OIDC client secret.
|
||||||
TINYAUTH_OIDC_CLIENTS_[NAME]_CLIENTSECRETFILE=
|
TINYAUTH_OIDC_CLIENTS_[NAME]_CLIENTSECRETFILE=
|
||||||
# List of trusted redirect URIs.
|
# List of trusted redirect URIs.
|
||||||
TINYAUTH_OIDC_CLIENTS_[NAME]_TRUSTEDREDIRECTURIS=[]
|
TINYAUTH_OIDC_CLIENTS_[NAME]_TRUSTEDREDIRECTURIS=
|
||||||
# Client name in UI.
|
# Client name in UI.
|
||||||
TINYAUTH_OIDC_CLIENTS_[NAME]_NAME=
|
TINYAUTH_OIDC_CLIENTS_[NAME]_NAME=
|
||||||
# The title of the UI.
|
# The title of the UI.
|
||||||
|
|||||||
@@ -31,11 +31,13 @@ func generateExampleEnv() {
|
|||||||
err := os.Remove(".env.example")
|
err := os.Remove(".env.example")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("failed to remove example env file", "error", err)
|
slog.Error("failed to remove example env file", "error", err)
|
||||||
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = os.WriteFile(".env.example", compiled, 0644)
|
err = os.WriteFile(".env.example", compiled, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("failed to write example env file", "error", err)
|
slog.Error("failed to write example env file", "error", err)
|
||||||
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,20 +50,13 @@ func buildPaths(parent reflect.Type, parentValue reflect.Value, parentPath strin
|
|||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
childPath := parentPath + strings.ToUpper(field.Name) + "_"
|
childPath := parentPath + strings.ToUpper(field.Name) + "_"
|
||||||
buildPaths(fieldType, fieldValue, childPath, paths)
|
buildPaths(fieldType, fieldValue, childPath, paths)
|
||||||
case reflect.Bool:
|
|
||||||
buildPath(field, fieldValue, parentPath, paths)
|
|
||||||
case reflect.String:
|
|
||||||
buildPath(field, fieldValue, parentPath, paths)
|
|
||||||
case reflect.Slice:
|
|
||||||
buildPath(field, fieldValue, parentPath, paths)
|
|
||||||
case reflect.Int:
|
|
||||||
buildPath(field, fieldValue, parentPath, paths)
|
|
||||||
case reflect.Map:
|
case reflect.Map:
|
||||||
buildMapPaths(field, parentPath, paths)
|
buildMapPaths(field, parentPath, paths)
|
||||||
|
case reflect.Bool, reflect.String, reflect.Slice, reflect.Int:
|
||||||
|
buildPath(field, fieldValue, parentPath, paths)
|
||||||
default:
|
default:
|
||||||
slog.Info("unknown type", "type", fieldType.Kind())
|
slog.Info("unknown type", "type", fieldType.Kind())
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user