fix save settings

This commit is contained in:
Alireza Ahmadi
2025-01-07 19:26:47 +01:00
parent 13da0b59a9
commit 9f6771ec09
4 changed files with 34 additions and 18 deletions
+7 -1
View File
@@ -144,7 +144,7 @@ func (a *APIHandler) getHandler(c *gin.Context) {
return
}
jsonObj(c, *users, nil)
case "setting":
case "settings":
data, err := a.SettingService.GetAllSetting()
if err != nil {
jsonMsg(c, "", err)
@@ -298,6 +298,12 @@ func (a *APIHandler) loadPartialData(c *gin.Context, objs []string) error {
return err
}
data[obj] = json.RawMessage(config)
case "settings":
settings, err := a.SettingService.GetAllSetting()
if err != nil {
return err
}
data[obj] = settings
}
}
+2
View File
@@ -148,6 +148,8 @@ func (s *ConfigService) Save(obj string, act string, data json.RawMessage, login
return nil, err
}
err = s.restartCoreWithConfig(data)
case "settings":
err = s.SettingService.Save(tx, data)
default:
return nil, common.NewError("unknown object: ", obj)
}
+7 -6
View File
@@ -351,13 +351,14 @@ func (s *SettingService) SaveConfig(tx *gorm.DB, config json.RawMessage) error {
return tx.Model(model.Setting{}).Where("key = ?", "config").Update("value", string(configs)).Error
}
func (s *SettingService) Save(tx *gorm.DB, changes []model.Changes) error {
func (s *SettingService) Save(tx *gorm.DB, data json.RawMessage) error {
var err error
for _, change := range changes {
key := change.Key
var obj string
json.Unmarshal(change.Obj, &obj)
var settings map[string]string
err = json.Unmarshal(data, &settings)
if err != nil {
return err
}
for key, obj := range settings {
// Secure file existance check
if obj != "" && (key == "webCertFile" ||
key == "webKeyFile" ||