You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
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 RegisterRoleRoutes(router *gin.RouterGroup, db *gorm.DB, jwtSecret string) { |
|
// 初始化依赖 |
|
roleRepo := repository.NewRoleRepository(db) |
|
roleService := service.NewRoleService(roleRepo) |
|
roleController := controller.NewRoleController(roleService) |
|
|
|
// 角色管理路由组 - 修复路径配置 |
|
roleGroup := router.Group("/auth/roles") |
|
{ |
|
// 临时测试路由 - 不需要认证 |
|
testGroup := roleGroup.Group("/test") |
|
{ |
|
testGroup.GET("", roleController.ListRoles) // 获取角色列表 |
|
testGroup.POST("", roleController.CreateRole) // 创建角色 |
|
testGroup.GET("/:id", roleController.GetRole) // 获取角色详情 |
|
testGroup.PUT("/:id", roleController.UpdateRole) // 更新角色 |
|
testGroup.DELETE("/:id", roleController.DeleteRole) // 删除角色 |
|
} |
|
|
|
// 需要权限验证的路由 |
|
roleGroup.Use(middleware.JWTAuth()) |
|
{ |
|
// 角色CRUD操作 |
|
roleGroup.GET("", roleController.ListRoles) // 获取角色列表 |
|
roleGroup.POST("", roleController.CreateRole) // 创建角色 |
|
roleGroup.GET("/:id", roleController.GetRole) // 获取角色详情 |
|
roleGroup.PUT("/:id", roleController.UpdateRole) // 更新角色 |
|
roleGroup.DELETE("/:id", roleController.DeleteRole) // 删除角色 |
|
|
|
// 角色分配相关 |
|
roleGroup.POST("/users/:userId/assign", roleController.AssignRolesToUser) // 为用户分配角色 |
|
roleGroup.GET("/users/:userId", roleController.GetUserRoles) // 获取用户的角色列表 |
|
roleGroup.DELETE("/users/:userId/remove", roleController.RemoveRolesFromUser) // 从用户移除角色 |
|
} |
|
} |
|
}
|
|
|