All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 5m51s
将验证码配置从直接使用config.VerifyCode改为使用内部verifyCodeConfig结构 优化默认值设置逻辑,提高代码可读性和维护性
70 lines
1.8 KiB
Go
70 lines
1.8 KiB
Go
package initialize
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/perfect-panel/server/pkg/logger"
|
|
|
|
"github.com/perfect-panel/server/internal/config"
|
|
"github.com/perfect-panel/server/internal/svc"
|
|
"github.com/perfect-panel/server/pkg/tool"
|
|
)
|
|
|
|
type verifyConfig struct {
|
|
TurnstileSiteKey string
|
|
TurnstileSecret string
|
|
EnableLoginVerify bool
|
|
EnableRegisterVerify bool
|
|
EnableResetPasswordVerify bool
|
|
}
|
|
|
|
type verifyCodeConfig struct {
|
|
VerifyCodeExpireTime int64
|
|
VerifyCodeLimit int64
|
|
VerifyCodeInterval int64
|
|
}
|
|
|
|
func Verify(svc *svc.ServiceContext) {
|
|
logger.Debug("Verify config initialization")
|
|
configs, err := svc.SystemModel.GetVerifyConfig(context.Background())
|
|
if err != nil {
|
|
logger.Error("[Init Verify Config] Get Verify Config Error: ", logger.Field("error", err.Error()))
|
|
return
|
|
}
|
|
var verify verifyConfig
|
|
tool.SystemConfigSliceReflectToStruct(configs, &verify)
|
|
svc.Config.Verify = config.Verify{
|
|
TurnstileSiteKey: verify.TurnstileSiteKey,
|
|
TurnstileSecret: verify.TurnstileSecret,
|
|
LoginVerify: verify.EnableLoginVerify,
|
|
RegisterVerify: verify.EnableRegisterVerify,
|
|
ResetPasswordVerify: verify.EnableResetPasswordVerify,
|
|
}
|
|
|
|
logger.Debug("Verify code config initialization")
|
|
|
|
var vcc verifyCodeConfig
|
|
cfg, err := svc.SystemModel.GetVerifyCodeConfig(context.Background())
|
|
if err != nil {
|
|
logger.Errorf("[Init Verify Config] Get Verify Code Config Error: %s", err.Error())
|
|
return
|
|
}
|
|
tool.SystemConfigSliceReflectToStruct(cfg, &vcc)
|
|
|
|
if vcc.VerifyCodeExpireTime == 0 {
|
|
vcc.VerifyCodeExpireTime = 900
|
|
}
|
|
if vcc.VerifyCodeLimit == 0 {
|
|
vcc.VerifyCodeLimit = 15
|
|
}
|
|
if vcc.VerifyCodeInterval == 0 {
|
|
vcc.VerifyCodeInterval = 60
|
|
}
|
|
|
|
svc.Config.VerifyCode = config.VerifyCode{
|
|
ExpireTime: vcc.VerifyCodeExpireTime,
|
|
Limit: vcc.VerifyCodeLimit,
|
|
Interval: vcc.VerifyCodeInterval,
|
|
}
|
|
}
|