feat(M3): 申请审批 + 邮件队列 — 公开申请、管理员审批自动建号、mail_logs 落库重试
This commit is contained in:
+6
-4
@@ -94,8 +94,10 @@ func cmdServe(args []string) error {
|
||||
sessions := auth.NewDBSessionStore(db)
|
||||
resets := auth.NewDBResetTokenStore(db)
|
||||
limiter := auth.NewRateLimiter(cfg.Auth.MaxLoginFailures, cfg.Auth.LockDuration)
|
||||
mailer := mail.New(cfg.SMTP, log)
|
||||
// M3:所有邮件经队列(mail_logs 落库 + 失败重试),OTP 双通道不受邮件故障影响
|
||||
mailer := mail.NewQueuedMailer(mail.New(cfg.SMTP, log), db, log)
|
||||
authSvc := service.NewAuthService(db, cfg, otps, captchas, sessions, resets, limiter, mailer, userSvc, adminSvc, auditSvc, log)
|
||||
approvalSvc := service.NewApprovalService(db, cfg, userSvc, mailer, log)
|
||||
|
||||
// 启动前自动迁移(骨架阶段保证表结构就绪;M5 部署建议显式 migrate)
|
||||
if err := model.Migrate(db); err != nil {
|
||||
@@ -103,13 +105,13 @@ func cmdServe(args []string) error {
|
||||
}
|
||||
log.Info("db: migrated", "driver", cfg.Database.Driver, "dsn", cfg.Database.DSN)
|
||||
|
||||
// 定时任务(骨架:M1/M4 填充过期扫描/回收/审计归档)
|
||||
// 定时任务(M3:邮件失败重试;M4 填充过期扫描/回收/审计归档)
|
||||
sched := robfigcron.New()
|
||||
cron.New(db, log).Register(sched)
|
||||
cron.New(db, mailer, log).Register(sched)
|
||||
sched.Start()
|
||||
defer sched.Stop()
|
||||
|
||||
h := api.New(cfg, authSvc, userSvc, keySvc, auditSvc)
|
||||
h := api.New(cfg, authSvc, userSvc, keySvc, approvalSvc, auditSvc)
|
||||
r := router.New(cfg, h, sessions, log)
|
||||
|
||||
srv := server.New(cfg.Server.Listen, r, log)
|
||||
|
||||
Reference in New Issue
Block a user