feat(M4): 生命周期 + 审计 — 到期锁定/回收 cron、审计查询/CSV 导出/每日归档、settings 动态策略
This commit is contained in:
+13
-13
@@ -3,7 +3,6 @@ package router
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -74,11 +73,19 @@ func New(cfg *config.Config, h *api.Handler, sessions auth.SessionStore, log *sl
|
||||
approvals.POST("/:id/review", h.Approval.Review)
|
||||
}
|
||||
|
||||
// 后续里程碑
|
||||
v1.GET("/audit", notImplemented("审计查询(M4)"))
|
||||
v1.GET("/audit/export", notImplemented("审计导出(M4)"))
|
||||
v1.GET("/settings", notImplemented("设置(M4)"))
|
||||
v1.PUT("/settings", notImplemented("设置(M4)"))
|
||||
// 审计(M4):查询 + 手动 CSV 导出(admin)
|
||||
auditGrp := v1.Group("/audit", sessionMiddleware(sessions), requireUserType(auth.SessionUserAdmin))
|
||||
{
|
||||
auditGrp.GET("", h.Audit.List)
|
||||
auditGrp.GET("/export", h.Audit.Export)
|
||||
}
|
||||
|
||||
// 系统设置(M4):读写(admin)
|
||||
settings := v1.Group("/settings", sessionMiddleware(sessions), requireUserType(auth.SessionUserAdmin))
|
||||
{
|
||||
settings.GET("", h.Settings.List)
|
||||
settings.PUT("", h.Settings.Update)
|
||||
}
|
||||
}
|
||||
|
||||
// 前端静态资源(go:embed;dev 阶段由 Vite dev server 代理,见 Makefile dev)
|
||||
@@ -87,13 +94,6 @@ func New(cfg *config.Config, h *api.Handler, sessions auth.SessionStore, log *sl
|
||||
return r
|
||||
}
|
||||
|
||||
// notImplemented 返回 501 占位 handler,标注里程碑。
|
||||
func notImplemented(what string) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
c.JSON(http.StatusNotImplemented, gin.H{"error": "接口 " + what + " 尚未实现"})
|
||||
}
|
||||
}
|
||||
|
||||
// requestLogger 以 slog 输出结构化请求日志。
|
||||
func requestLogger(log *slog.Logger) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
|
||||
Reference in New Issue
Block a user