feat(M4): 生命周期 + 审计 — 到期锁定/回收 cron、审计查询/CSV 导出/每日归档、settings 动态策略
This commit is contained in:
+8
-4
@@ -86,7 +86,8 @@ func cmdServe(args []string) error {
|
||||
adminSvc := service.NewAdminService(db)
|
||||
userSvc := service.NewUserService(db, sys, cfg)
|
||||
keySvc := service.NewKeyService(db, sys, cfg)
|
||||
auditSvc := service.NewAuditService(db)
|
||||
auditSvc := service.NewAuditService(db, log)
|
||||
settingsSvc := service.NewSettingService(db, cfg)
|
||||
|
||||
// 认证依赖:DB OTP/会话/重置令牌存储 + 内存图形验证码/登录限速器 + 邮件
|
||||
captchas := auth.NewMemoryCaptchaStore(cfg.Auth.CaptchaTTL)
|
||||
@@ -98,6 +99,9 @@ func cmdServe(args []string) error {
|
||||
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)
|
||||
// M4:设置覆盖默认 TTL(settings 表);生命周期每日维护
|
||||
userSvc.WithSettings(settingsSvc)
|
||||
lifecycleSvc := service.NewLifecycleService(db, cfg, sys, userSvc, settingsSvc, mailer, auditSvc, log)
|
||||
|
||||
// 启动前自动迁移(骨架阶段保证表结构就绪;M5 部署建议显式 migrate)
|
||||
if err := model.Migrate(db); err != nil {
|
||||
@@ -105,13 +109,13 @@ func cmdServe(args []string) error {
|
||||
}
|
||||
log.Info("db: migrated", "driver", cfg.Database.Driver, "dsn", cfg.Database.DSN)
|
||||
|
||||
// 定时任务(M3:邮件失败重试;M4 填充过期扫描/回收/审计归档)
|
||||
// 定时任务(M3:邮件重试;M4:过期扫描/回收/审计归档)
|
||||
sched := robfigcron.New()
|
||||
cron.New(db, mailer, log).Register(sched)
|
||||
cron.New(cfg, mailer, lifecycleSvc, auditSvc, settingsSvc, log).Register(sched)
|
||||
sched.Start()
|
||||
defer sched.Stop()
|
||||
|
||||
h := api.New(cfg, authSvc, userSvc, keySvc, approvalSvc, auditSvc)
|
||||
h := api.New(cfg, authSvc, userSvc, keySvc, approvalSvc, auditSvc, settingsSvc)
|
||||
r := router.New(cfg, h, sessions, log)
|
||||
|
||||
srv := server.New(cfg.Server.Listen, r, log)
|
||||
|
||||
Reference in New Issue
Block a user