|
|
|
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.JWTAuth()) // 暂时只检查JWT,不检查权限
|
|
|
|
{
|
|
|
|
// 权限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) // 从角色移除权限
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|