diff --git a/server/internal/api/keys.go b/server/internal/api/keys.go index 493a8f0..eb3b259 100644 --- a/server/internal/api/keys.go +++ b/server/internal/api/keys.go @@ -1,6 +1,7 @@ package api import ( + "encoding/json" "net/http" "strconv" "time" @@ -135,9 +136,6 @@ func (h *Handler) PatchKey(c *gin.Context) { if req.QuotaRequestsPerDay != nil { updates["quota_requests_per_day"] = *req.QuotaRequestsPerDay } - if req.AllowedModels != nil { - updates["allowed_models"] = *req.AllowedModels - } if req.Status != nil { if *req.Status != store.KeyStatusActive && *req.Status != store.KeyStatusRevoked { resp.Fail(c, http.StatusBadRequest, "status must be active or revoked") @@ -151,6 +149,14 @@ func (h *Handler) PatchKey(c *gin.Context) { return } } + // allowed_models 是 jsonb:手动序列化为 JSON 字符串写入(跨 SQLite/Postgres) + if req.AllowedModels != nil { + raw, _ := json.Marshal(*req.AllowedModels) + if err := h.a.DB.Model(&k).Update("allowed_models", string(raw)).Error; err != nil { + resp.Fail(c, http.StatusInternalServerError, "failed to update key") + return + } + } resp.OK(c, gin.H{"ok": true}) } diff --git a/web/src/views/console/KeysView.vue b/web/src/views/console/KeysView.vue index 6cdf839..b7c32f1 100644 --- a/web/src/views/console/KeysView.vue +++ b/web/src/views/console/KeysView.vue @@ -1,5 +1,5 @@