Files
yovision/Bell/server/app/admin/router/router.go
T

48 lines
1.3 KiB
Go

package router
import (
"github.com/gin-gonic/gin"
_ "github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
)
var (
routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0)
)
func InitExamplesRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine {
// 无需认证的路由
examplesNoCheckRoleRouter(r)
// 需要认证的路由
examplesCheckRoleRouter(r, authMiddleware)
return r
}
// 无需认证的路由示例
func examplesNoCheckRoleRouter(r *gin.Engine) {
// 可根据业务需求来设置接口版本
v1 := r.Group("/api/v1")
for _, f := range routerNoCheckRole {
f(v1)
}
}
// 需要认证的路由示例
func examplesCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) {
// 可根据业务需求来设置接口版本
v1 := r.Group("/api/v1")
// Bell 骨架只启用认证/RBAC 必需的用户、角色和菜单模块。
// 其余冻结上游模块源码保留,但不注册路由,避免仅隐藏菜单后仍可直访。
for _, f := range []func(*gin.RouterGroup, *jwt.GinJWTMiddleware){
registerSysMenuRouter,
registerSysRoleRouter,
registerSysUserRouter,
} {
f(v1, authMiddleware)
}
}