瀏覽代碼

sync auto update settings with hosts

abhishek9686 4 月之前
父節點
當前提交
7c71931ca6
共有 3 個文件被更改,包括 15 次插入12 次删除
  1. 2 2
      controllers/server.go
  2. 12 9
      logic/settings.go
  3. 1 1
      migrate/migrate.go

+ 2 - 2
controllers/server.go

@@ -254,7 +254,7 @@ func getSettings(w http.ResponseWriter, r *http.Request) {
 // @Success     200 {object} config.ServerSettings
 func updateSettings(w http.ResponseWriter, r *http.Request) {
 	var req models.ServerSettings
-
+	force := r.URL.Query().Get("force")
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
 		logger.Log(0, r.Header.Get("user"), "error decoding request body: ", err.Error())
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
@@ -264,7 +264,7 @@ func updateSettings(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("invalid settings"), "badrequest"))
 		return
 	}
-	err := logic.UpsertServerSettings(req)
+	err := logic.UpsertServerSettings(req, force == "true")
 	if err != nil {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to udpate server settings "+err.Error()), "internal"))
 		return

+ 12 - 9
logic/settings.go

@@ -27,7 +27,7 @@ func GetServerSettings() (s models.ServerSettings) {
 	return
 }
 
-func UpsertServerSettings(s models.ServerSettings) error {
+func UpsertServerSettings(s models.ServerSettings, force bool) error {
 	// get curr settings
 	currSettings := GetServerSettings()
 	data, err := json.Marshal(s)
@@ -38,7 +38,7 @@ func UpsertServerSettings(s models.ServerSettings) error {
 	if err != nil {
 		return err
 	}
-	go reInit(currSettings, s)
+	go reInit(currSettings, s, force)
 	return nil
 }
 
@@ -47,21 +47,24 @@ func ValidateNewSettings(req models.ServerSettings) bool {
 	return true
 }
 
-func reInit(curr, new models.ServerSettings) {
+func reInit(curr, new models.ServerSettings, force bool) {
 	settingsMutex.Lock()
 	defer settingsMutex.Unlock()
 	InitializeAuthProvider()
 	EmailInit()
 	SetVerbosity(int(GetServerSettings().Verbosity))
 	// check if auto update is changed
-	if curr.NetclientAutoUpdate != new.NetclientAutoUpdate {
-		// update all hosts
-		hosts, _ := GetAllHosts()
-		for _, host := range hosts {
-			host.AutoUpdate = new.NetclientAutoUpdate
-			UpsertHost(&host)
+	if force {
+		if curr.NetclientAutoUpdate != new.NetclientAutoUpdate {
+			// update all hosts
+			hosts, _ := GetAllHosts()
+			for _, host := range hosts {
+				host.AutoUpdate = new.NetclientAutoUpdate
+				UpsertHost(&host)
+			}
 		}
 	}
+
 }
 
 func GetServerSettingsFromEnv() (s models.ServerSettings) {

+ 1 - 1
migrate/migrate.go

@@ -502,6 +502,6 @@ func migrateToGws() {
 func settings() {
 	_, err := database.FetchRecords(database.SERVER_SETTINGS)
 	if database.IsEmptyRecord(err) {
-		logic.UpsertServerSettings(logic.GetServerSettingsFromEnv())
+		logic.UpsertServerSettings(logic.GetServerSettingsFromEnv(), false)
 	}
 }