feat: 后端限速实现 + 前端i18n全面国际化 + 安全与代码质量修复
后端: - trafficmgr: 实现 tc htb 限速(ApplyRateLimit/RemoveRateLimit),自动推导接口名 - 各协议服务: 代码质量改进与错误处理增强 前端: - protocols.js: 170个硬编码中文字符串全部转为 i18n key,中英文双语翻译 - 提取 fmtBytes() 到 utils/format.js 公共模块(消除 4 处重复) - router.js: 添加路由级权限守卫,非管理员无法直接 URL 访问管理页 - Tunnels.vue: SSE 日志流改用 fetch+ReadableStream,token 放 Authorization header - VPNUsers.vue: 修复 catch 块中文硬编码 fallback - 新增 TaskProgress 组件、taskmgr 后端任务管理
This commit is contained in:
1 parent
021d012478
commit
91974fc30f
26 files changed
+1977
-377
No files matched your search
@@ -32,14 +32,16 @@ import (
|
||||
"vpn-platform/backend/internal/sshutil"
|
||||
"vpn-platform/backend/internal/store"
|
||||
"vpn-platform/backend/internal/trafficmgr"
|
||||
"vpn-platform/backend/internal/taskmgr"
|
||||
)
|
||||
|
||||
// Server API 服务器
|
||||
type Server struct {
|
||||
mgr *core.Manager
|
||||
mgr *core.Manager
|
||||
taskMgr *taskmgr.Manager
|
||||
}
|
||||
|
||||
func NewServer(mgr *core.Manager) *Server { return &Server{mgr: mgr} }
|
||||
func NewServer(mgr *core.Manager) *Server { return &Server{mgr: mgr, taskMgr: taskmgr.NewManager()} }
|
||||
|
||||
// ---- Token 会话(内存态,定期清理过期项)----
|
||||
var (
|
||||
@@ -260,6 +262,14 @@ func (s *Server) RegisterRoutes(r *gin.Engine) {
|
||||
ops.GET("/binaries/install-hint/:name", s.binaryInstallHint)
|
||||
ops.PUT("/tunnels/:id/policy", s.saveTrafficPolicy)
|
||||
|
||||
// 批量操作 & 任务管理
|
||||
ops.POST("/tunnels/batch/start", s.batchTunnels(taskmgr.ActionStart))
|
||||
ops.POST("/tunnels/batch/stop", s.batchTunnels(taskmgr.ActionStop))
|
||||
ops.POST("/tunnels/batch/delete", s.batchTunnels(taskmgr.ActionDelete))
|
||||
ops.POST("/tunnels/batch/policy", s.batchSetPolicy)
|
||||
ops.GET("/tasks", s.listTasks)
|
||||
ops.GET("/tasks/:id", s.getTask)
|
||||
|
||||
// 平台管理 admin
|
||||
admin := auth.Group("")
|
||||
admin.Use(requireRole("admin"))
|
||||
|
||||
Reference in new issue
Block a user