From e82fa0db2f59a4fc4330ee56c189dc2bc7bac11a Mon Sep 17 00:00:00 2001 From: alimy Date: Wed, 1 Jun 2022 09:53:34 +0800 Subject: [PATCH] add runtime feature adjust config for enable/disable some feature such phone verify in local develop enviroment --- config.yaml.sample | 2 ++ global/setting.go | 1 + init.go | 4 ++++ internal/routers/api/user.go | 11 ++++++----- pkg/setting/settting.go | 4 ++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/config.yaml.sample b/config.yaml.sample index f666be2f..a44a84df 100644 --- a/config.yaml.sample +++ b/config.yaml.sample @@ -10,6 +10,8 @@ App: # APP基础设置项 SmsJuheTplVal: "#code#=%d&#m#=%d" AlipayAppID: AlipayPrivateKey: +Runtime: # App运行时功能调节 + DisablePhoneVerify: False # 禁止绑定手机号码时验证短信验证码,为true时任意验证码都可以通过验证 Server: # 服务设置 RunMode: debug HttpIp: 0.0.0.0 diff --git a/global/setting.go b/global/setting.go index 1e26d29c..ac463109 100644 --- a/global/setting.go +++ b/global/setting.go @@ -10,6 +10,7 @@ import ( var ( ServerSetting *setting.ServerSettingS AppSetting *setting.AppSettingS + RuntimeSetting *setting.RuntimeSettingS DatabaseSetting *setting.DatabaseSettingS RedisSetting *setting.RedisSettingS SearchSetting *setting.SearchSettingS diff --git a/init.go b/init.go index 9382471f..9cf96f1d 100644 --- a/init.go +++ b/init.go @@ -41,6 +41,10 @@ func setupSetting() error { if err != nil { return err } + err = setting.ReadSection("Runtime", &global.RuntimeSetting) + if err != nil { + return err + } err = setting.ReadSection("Log", &global.LoggerSetting) if err != nil { return err diff --git a/internal/routers/api/user.go b/internal/routers/api/user.go index 92ba4b72..71b0b8a5 100644 --- a/internal/routers/api/user.go +++ b/internal/routers/api/user.go @@ -248,11 +248,12 @@ func BindUserPhone(c *gin.Context) { } // 验证短信验证码 - err := svc.CheckPhoneCaptcha(param.Phone, param.Captcha) - if err != nil { - global.Logger.Errorf("svc.CheckPhoneCaptcha err: %v\n", err) - response.ToErrorResponse(err) - return + if !global.RuntimeSetting.DisablePhoneVerify { + if err := svc.CheckPhoneCaptcha(param.Phone, param.Captcha); err != nil { + global.Logger.Errorf("svc.CheckPhoneCaptcha err: %v\n", err) + response.ToErrorResponse(err) + return + } } // 执行绑定 diff --git a/pkg/setting/settting.go b/pkg/setting/settting.go index 216ada5a..bb22198b 100644 --- a/pkg/setting/settting.go +++ b/pkg/setting/settting.go @@ -51,6 +51,10 @@ type AppSettingS struct { AlipayPrivateKey string } +type RuntimeSettingS struct { + DisablePhoneVerify bool +} + type SearchSettingS struct { ZincHost string ZincIndex string