admin: apply settings to internal structures

This allows scores and rank to be properly generated in admin interface.
This commit is contained in:
nemunaire 2018-12-06 21:25:09 +01:00
parent 8edc8e697c
commit 7edd70c3c0
2 changed files with 12 additions and 0 deletions

View file

@ -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 { if err := settings.SaveSettings(path.Join(settings.SettingsDir, settings.SettingsFile), config); err != nil {
return nil, err return nil, err
} else { } else {
ApplySettings(config)
return config, err 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) { func reset(_ httprouter.Params, body []byte) (interface{}, error) {
var m map[string]string var m map[string]string
if err := json.Unmarshal(body, &m); err != nil { if err := json.Unmarshal(body, &m); err != nil {

View file

@ -177,6 +177,10 @@ func main() {
}); err != nil { }); err != nil {
log.Fatal("Unable to initialize settings.json:", err) 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 // Database connection