From 7edd70c3c02cd7e2cc8dc931cbb0ba205d84280f Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 6 Dec 2018 21:25:09 +0100 Subject: [PATCH] admin: apply settings to internal structures This allows scores and rank to be properly generated in admin interface. --- admin/api/settings.go | 8 ++++++++ admin/main.go | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/admin/api/settings.go b/admin/api/settings.go index 91faf2f2..a5767c99 100644 --- a/admin/api/settings.go +++ b/admin/api/settings.go @@ -44,10 +44,18 @@ func saveSettings(_ httprouter.Params, body []byte) (interface{}, error) { if err := settings.SaveSettings(path.Join(settings.SettingsDir, settings.SettingsFile), config); err != nil { return nil, err } else { + ApplySettings(config) return config, err } } +func ApplySettings(config settings.FICSettings) { + fic.PartialValidation = config.PartialValidation + fic.UnlockedChallenges = !config.EnableExerciceDepend + fic.FirstBlood = config.FirstBlood + fic.SubmissionCostBase = config.SubmissionCostBase +} + func reset(_ httprouter.Params, body []byte) (interface{}, error) { var m map[string]string if err := json.Unmarshal(body, &m); err != nil { diff --git a/admin/main.go b/admin/main.go index 4804b7eb..3b23a70b 100644 --- a/admin/main.go +++ b/admin/main.go @@ -177,6 +177,10 @@ func main() { }); err != nil { log.Fatal("Unable to initialize settings.json:", err) } + } else if config, err := settings.ReadSettings(path.Join(settings.SettingsDir, settings.SettingsFile)); err != nil { + log.Fatal("Unable to read settings.json:", err) + } else { + api.ApplySettings(config) } // Database connection