summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/models/application.go')
-rw-r--r--pkg/models/application.go69
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")
+}