package routes import ( "gofaster/internal/auth/controller" "gofaster/internal/auth/repository" "gofaster/internal/auth/service" "gofaster/internal/shared/middleware" "github.com/gin-gonic/gin" "gorm.io/gorm" ) func RegisterPermissionRoutes(router *gin.RouterGroup, db *gorm.DB, jwtSecret string) { // 初始化依赖 permissionRepo := repository.NewPermissionRepository(db) roleRepo := repository.NewRoleRepository(db) permissionService := service.NewPermissionService(permissionRepo, roleRepo) permissionController := controller.NewPermissionController(permissionService) // 权限管理路由组 permissionGroup := router.Group("/permissions") { // 需要权限验证的路由 permissionGroup.Use(middleware.AuthMiddleware(jwtSecret)) { // 权限CRUD操作 permissionGroup.GET("", permissionController.ListPermissions) // 获取权限列表 permissionGroup.POST("", permissionController.CreatePermission) // 创建权限 permissionGroup.GET("/:id", permissionController.GetPermission) // 获取权限详情 permissionGroup.PUT("/:id", permissionController.UpdatePermission) // 更新权限 permissionGroup.DELETE("/:id", permissionController.DeletePermission) // 删除权限 // 权限分配相关 permissionGroup.GET("/resource/:resource", permissionController.GetPermissionsByResource) // 根据资源获取权限 permissionGroup.POST("/roles/:roleId/assign", permissionController.AssignPermissionsToRole) // 为角色分配权限 permissionGroup.GET("/roles/:roleId", permissionController.GetRolePermissions) // 获取角色的权限列表 permissionGroup.DELETE("/roles/:roleId/remove", permissionController.RemovePermissionsFromRole) // 从角色移除权限 } } }