From f8ab5d4da615c70d13ef7847dcd9b53caf7fa79e Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Tue, 24 Oct 2023 17:40:36 +0800 Subject: [PATCH] Opt: set setting use assertion judgment --- server/handlers/admin.go | 9 ++++++++- server/model/admin.go | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/server/handlers/admin.go b/server/handlers/admin.go index 86627c4..a04160f 100644 --- a/server/handlers/admin.go +++ b/server/handlers/admin.go @@ -27,7 +27,14 @@ func AdminSettings(ctx *gin.Context) { } switch t { case dbModel.SettingTypeBool: - op.BoolSettings[k].Set(v == "1") + b, ok := v.(bool) + if !ok { + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp(fmt.Sprintf("setting %s is not bool", k))) + return + } + op.BoolSettings[k].Set(b) } } + + ctx.Status(http.StatusNoContent) } diff --git a/server/model/admin.go b/server/model/admin.go index 6805ba0..54cb3f5 100644 --- a/server/model/admin.go +++ b/server/model/admin.go @@ -5,7 +5,7 @@ import ( json "github.com/json-iterator/go" ) -type AdminSettingsReq map[string]string +type AdminSettingsReq map[string]any func (asr *AdminSettingsReq) Validate() error { return nil