Updating Config to a more protected access paradigm
This commit is contained in:
@@ -19,7 +19,11 @@ type StackConfiguration struct {
|
||||
|
||||
var Environment = os.Getenv("STACK_ENVIRONMENT")
|
||||
|
||||
var Config = StackConfiguration{}
|
||||
var configInternal = StackConfiguration{}
|
||||
|
||||
func Config() StackConfiguration {
|
||||
return configInternal
|
||||
}
|
||||
|
||||
func GetConfigPath(filename string) string {
|
||||
if Environment == "" {
|
||||
@@ -35,11 +39,11 @@ func LoadConfig() {
|
||||
}
|
||||
defer file.Close()
|
||||
dec := json.NewDecoder(file)
|
||||
if err := dec.Decode(&Config); err != nil {
|
||||
if err := dec.Decode(&configInternal); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
Config.ConfigLoaded = true
|
||||
configInternal.ConfigLoaded = true
|
||||
|
||||
log.Printf("Loaded Config for stack " + Environment)
|
||||
}
|
||||
|
||||
@@ -16,52 +16,52 @@ func TestAllConfigs(t *testing.T) {
|
||||
}
|
||||
|
||||
func SingleStackTest(t *testing.T, stack string, expected StackConfiguration) {
|
||||
Config = StackConfiguration{}
|
||||
configInternal = StackConfiguration{}
|
||||
|
||||
if Config.ConfigLoaded {
|
||||
if Config().ConfigLoaded {
|
||||
t.Errorf("Config.ConfigLoaded should be false before any processing")
|
||||
}
|
||||
|
||||
if len(Config.AdminEmails) > 0 ||
|
||||
Config.AdminHmacEnv != "" ||
|
||||
Config.UserHmacEnv != "" ||
|
||||
Config.AllowFreshAdminGeneration ||
|
||||
Config.AuthedRateLimitConfig != "" ||
|
||||
Config.UnauthedRateLimitConfig != "" { // Extend this IF for any other config values
|
||||
if len(Config().AdminEmails) > 0 ||
|
||||
Config().AdminHmacEnv != "" ||
|
||||
Config().UserHmacEnv != "" ||
|
||||
Config().AllowFreshAdminGeneration ||
|
||||
Config().AuthedRateLimitConfig != "" ||
|
||||
Config().UnauthedRateLimitConfig != "" { // Extend this IF for any other config values
|
||||
t.Errorf("Config already has values before loading")
|
||||
}
|
||||
|
||||
Environment = stack
|
||||
LoadConfig()
|
||||
|
||||
if !Config.ConfigLoaded {
|
||||
if !Config().ConfigLoaded {
|
||||
t.Errorf("Config was not set to loaded")
|
||||
}
|
||||
|
||||
// Finally test values
|
||||
if Config.AllowFreshAdminGeneration != expected.AllowFreshAdminGeneration {
|
||||
if Config().AllowFreshAdminGeneration != expected.AllowFreshAdminGeneration {
|
||||
t.Errorf("AllowFreshAdminGeneration value not set properly")
|
||||
}
|
||||
|
||||
for i, email := range Config.AdminEmails {
|
||||
for i, email := range Config().AdminEmails {
|
||||
if expected.AdminEmails[i] != email {
|
||||
t.Errorf("AdminEmails value not set properly, expected %v at %v, was %v", expected.AdminEmails[i], i, email)
|
||||
}
|
||||
}
|
||||
|
||||
if Config.AdminHmacEnv != expected.AdminHmacEnv {
|
||||
if Config().AdminHmacEnv != expected.AdminHmacEnv {
|
||||
t.Errorf("AdminHmacEnv value not set properly")
|
||||
}
|
||||
|
||||
if Config.UserHmacEnv != expected.UserHmacEnv {
|
||||
if Config().UserHmacEnv != expected.UserHmacEnv {
|
||||
t.Errorf("UserHmacEnv value not set properly")
|
||||
}
|
||||
|
||||
if Config.AuthedRateLimitConfig != expected.AuthedRateLimitConfig {
|
||||
if Config().AuthedRateLimitConfig != expected.AuthedRateLimitConfig {
|
||||
t.Errorf("AuthedRateLimitConfig value not set properly")
|
||||
}
|
||||
|
||||
if Config.UnauthedRateLimitConfig != expected.UnauthedRateLimitConfig {
|
||||
if Config().UnauthedRateLimitConfig != expected.UnauthedRateLimitConfig {
|
||||
t.Errorf("UnauthedRateLimitConfig value not set properly")
|
||||
}
|
||||
|
||||
|
||||
@@ -493,7 +493,7 @@ func StarterAdmin() gin.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
go util.SendEmail("Admin Created", "A new admin, "+a.Email+", has been created", config.Config.AdminEmails)
|
||||
go util.SendEmail("Admin Created", "A new admin, "+a.Email+", has been created", config.Config().AdminEmails)
|
||||
|
||||
c.JSON(http.StatusOK, util.NextMsg{Next: "db verify"})
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ var unauthLoaded = false
|
||||
func UnauthRateLimit() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
if !unauthLoaded {
|
||||
unauthed.loadFromConfig(config.GetConfigPath(config.Config.UnauthedRateLimitConfig))
|
||||
unauthed.loadFromConfig(config.GetConfigPath(config.Config().UnauthedRateLimitConfig))
|
||||
unauthLoaded = true
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ var authLoaded = false
|
||||
func AuthedRateLimit() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
if !authLoaded {
|
||||
authed.loadFromConfig(config.GetConfigPath(config.Config.AuthedRateLimitConfig))
|
||||
authed.loadFromConfig(config.GetConfigPath(config.Config().AuthedRateLimitConfig))
|
||||
authLoaded = true
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user