mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 19:41:17 +00:00
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// RegistrationConfig holds registration token configuration
|
|
type RegistrationConfig struct {
|
|
RequireToken bool
|
|
DefaultValidity time.Duration
|
|
DefaultMaxUses int
|
|
AllowUnprotected bool
|
|
}
|
|
|
|
// GetRegistrationConfig returns the registration configuration from environment
|
|
func GetRegistrationConfig() RegistrationConfig {
|
|
config := RegistrationConfig{
|
|
RequireToken: false,
|
|
DefaultValidity: 15 * time.Minute,
|
|
DefaultMaxUses: 1,
|
|
AllowUnprotected: true,
|
|
}
|
|
|
|
// Check if registration tokens are required
|
|
if os.Getenv("REQUIRE_REGISTRATION_TOKEN") == "true" {
|
|
config.RequireToken = true
|
|
config.AllowUnprotected = false
|
|
}
|
|
|
|
// Allow explicitly disabling protection for homelab use
|
|
if os.Getenv("ALLOW_UNPROTECTED_AUTO_REGISTER") == "true" {
|
|
config.AllowUnprotected = true
|
|
}
|
|
|
|
// Set default validity from environment
|
|
if validityStr := os.Getenv("REGISTRATION_TOKEN_DEFAULT_VALIDITY"); validityStr != "" {
|
|
if validitySec, err := strconv.Atoi(validityStr); err == nil {
|
|
config.DefaultValidity = time.Duration(validitySec) * time.Second
|
|
}
|
|
}
|
|
|
|
// Set default max uses from environment
|
|
if maxUsesStr := os.Getenv("REGISTRATION_TOKEN_DEFAULT_MAX_USES"); maxUsesStr != "" {
|
|
if maxUses, err := strconv.Atoi(maxUsesStr); err == nil {
|
|
config.DefaultMaxUses = maxUses
|
|
}
|
|
}
|
|
|
|
return config
|
|
}
|