From 57de4cb9883aa9612bab6f98078abe2397e8400e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Thu, 9 Nov 2023 15:53:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=AF=81=E4=B9=A6=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=81=E4=B9=A6=E4=BF=9D=E5=AD=98=E5=8F=8A?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/http/requests/cert/cert_store.go | 11 +++++++++-- app/http/requests/cert/cert_update.go | 11 +++++++++-- pkg/acme/client.go | 12 ++++++------ 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/http/requests/cert/cert_store.go b/app/http/requests/cert/cert_store.go index 8edc1cd7..ba040964 100644 --- a/app/http/requests/cert/cert_store.go +++ b/app/http/requests/cert/cert_store.go @@ -10,7 +10,7 @@ type CertStore struct { Type string `form:"type" json:"type"` Domains []string `form:"domains" json:"domains"` AutoRenew bool `form:"auto_renew" json:"auto_renew"` - UserID uint `form:"user_id" json:"user_id" filter:"uint"` + UserID uint `form:"user_id" json:"user_id"` DNSID *uint `form:"dns_id" json:"dns_id"` WebsiteID *uint `form:"website_id" json:"website_id"` } @@ -22,7 +22,7 @@ func (r *CertStore) Authorize(ctx http.Context) error { func (r *CertStore) Rules(ctx http.Context) map[string]string { return map[string]string{ "type": "required|in:P256,P384,2048,4096", - "domains": "required|array", + "domains": "required|slice", "auto_renew": "required|bool", "user_id": "required|uint|exists:cert_users,id", "dns_id": "uint", @@ -40,6 +40,13 @@ func (r *CertStore) Attributes(ctx http.Context) map[string]string { func (r *CertStore) PrepareForValidation(ctx http.Context, data validation.Data) error { // TODO 由于验证器 filter 标签的问题,暂时这里这样处理 + userID, exist := data.Get("user_id") + if exist { + err := data.Set("user_id", cast.ToUint(userID)) + if err != nil { + return err + } + } dnsID, exist := data.Get("dns_id") if exist { err := data.Set("dns_id", cast.ToUint(dnsID)) diff --git a/app/http/requests/cert/cert_update.go b/app/http/requests/cert/cert_update.go index f197396d..05d9adfc 100644 --- a/app/http/requests/cert/cert_update.go +++ b/app/http/requests/cert/cert_update.go @@ -11,7 +11,7 @@ type CertUpdate struct { Type string `form:"type" json:"type"` Domains []string `form:"domains" json:"domains"` AutoRenew bool `form:"auto_renew" json:"auto_renew"` - UserID uint `form:"user_id" json:"user_id" filter:"uint"` + UserID uint `form:"user_id" json:"user_id"` DNSID *uint `form:"dns_id" json:"dns_id"` WebsiteID *uint `form:"website_id" json:"website_id"` } @@ -24,7 +24,7 @@ func (r *CertUpdate) Rules(ctx http.Context) map[string]string { return map[string]string{ "id": "required|uint|min:1|exists:certs,id", "type": "required|in:P256,P384,2048,4096", - "domains": "required|array", + "domains": "required|slice", "auto_renew": "required|bool", "user_id": "required|uint|exists:cert_users,id", "dns_id": "uint", @@ -42,6 +42,13 @@ func (r *CertUpdate) Attributes(ctx http.Context) map[string]string { func (r *CertUpdate) PrepareForValidation(ctx http.Context, data validation.Data) error { // TODO 由于验证器 filter 标签的问题,暂时这里这样处理 + userID, exist := data.Get("user_id") + if exist { + err := data.Set("user_id", cast.ToUint(userID)) + if err != nil { + return err + } + } dnsID, exist := data.Get("dns_id") if exist { err := data.Set("dns_id", cast.ToUint(dnsID)) diff --git a/pkg/acme/client.go b/pkg/acme/client.go index fdbdd3ee..6a3afeb3 100644 --- a/pkg/acme/client.go +++ b/pkg/acme/client.go @@ -30,12 +30,12 @@ const ( ) type DNSParam struct { - ID string `json:"id"` - Token string `json:"token"` - AccessKey string `json:"access_key"` - SecretKey string `json:"secret_key"` - Email string `json:"email"` - APIkey string `json:"api_key"` + ID string `form:"id" json:"id"` + Token string `form:"token" json:"token"` + AccessKey string `form:"access_key" json:"access_key"` + SecretKey string `form:"secret_key" json:"secret_key"` + Email string `form:"email" json:"email"` + APIkey string `form:"api_key" json:"api_key"` } // UseDns 使用 DNS 接口验证