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.
40 lines
1.8 KiB
40 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 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) // 从角色移除权限 |
|
} |
|
} |
|
}
|
|
|