diff options
Diffstat (limited to 'pkg/models/application.go')
-rw-r--r-- | pkg/models/application.go | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/pkg/models/application.go b/pkg/models/application.go new file mode 100644 index 0000000..56e673c --- /dev/null +++ b/pkg/models/application.go @@ -0,0 +1,69 @@ +// Contains the model of the application data + +package models + +import ( + "glsamaker/pkg/config" + "glsamaker/pkg/database/connection" + "time" +) + +type ApplicationSetting struct { + Key string `pg:",pk"` + Value string + LastUpdate time.Time + //LastBugUpdate time.Time + //LastCVEUpdate time.Time +} + +type GlobalSettings struct { + LastBugUpdate time.Time + LastCVEUpdate time.Time + Version string + Force2FALogin bool + Force2FAGLSARelease bool +} + +func GetApplicationKey(key string) *ApplicationSetting { + applicationData := &ApplicationSetting{Key: key} + connection.DB.Model(applicationData).WherePK().Select() + return applicationData +} + +func SetApplicationValue(key string, value string) { + applicationData := &ApplicationSetting{ + Key: key, + Value: value, + LastUpdate: time.Now(), + } + + connection.DB.Model(applicationData).WherePK().OnConflict("(key) DO Update").Insert() +} + +func SeedApplicationValue(key string, value string) { + applicationData := &ApplicationSetting{ + Key: key, + Value: value, + LastUpdate: time.Now(), + } + + connection.DB.Model(applicationData).WherePK().OnConflict("(key) DO Nothing").Insert() +} + +func GetDefaultGlobalSettings() *GlobalSettings { + return &GlobalSettings{ + LastBugUpdate: GetApplicationKey("LastBugUpdate").LastUpdate, + LastCVEUpdate: GetApplicationKey("LastCVEUpdate").LastUpdate, + Version: GetApplicationKey("Version").Value, + Force2FALogin: GetApplicationKey("Force2FALogin").Value == "1", + Force2FAGLSARelease: GetApplicationKey("Force2FAGLSARelease").Value == "1", + } +} + +func SeedInitialApplicationData() { + SeedApplicationValue("LastBugUpdate", "") + SeedApplicationValue("LastCVEUpdate", "") + SeedApplicationValue("Version", config.Version()) + SeedApplicationValue("Force2FALogin", "0") + SeedApplicationValue("Force2FAGLSARelease", "0") +} |