迁移
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"kra/internal/biz"
|
||||
"kra/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func registerPolicyRoutes(group *gin.RouterGroup, svc *service.AccessService) {
|
||||
casbin := group.Group("/casbin")
|
||||
casbin.POST("/updateCasbin", func(c *gin.Context) {
|
||||
var req struct {
|
||||
AuthorityID uint `json:"authorityId"`
|
||||
Infos []struct {
|
||||
Path string `json:"path"`
|
||||
Method string `json:"method"`
|
||||
} `json:"casbinInfos"`
|
||||
}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
fail(c, "参数错误")
|
||||
return
|
||||
}
|
||||
paths := make([]*biz.API, 0, len(req.Infos))
|
||||
for _, v := range req.Infos {
|
||||
paths = append(paths, &biz.API{Path: v.Path, Method: v.Method})
|
||||
}
|
||||
if err := svc.SetPolicyPaths(c.Request.Context(), req.AuthorityID, paths); err != nil {
|
||||
fail(c, "更新失败")
|
||||
return
|
||||
}
|
||||
ok(c)
|
||||
})
|
||||
casbin.POST("/getPolicyPathByAuthorityId", func(c *gin.Context) {
|
||||
var req struct {
|
||||
AuthorityID uint `json:"authorityId"`
|
||||
}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
fail(c, "参数错误")
|
||||
return
|
||||
}
|
||||
paths, err := svc.PolicyPaths(c.Request.Context(), req.AuthorityID)
|
||||
if err != nil {
|
||||
fail(c, "获取失败")
|
||||
return
|
||||
}
|
||||
writeResult(c, codeSuccess, gin.H{"paths": paths}, "获取成功")
|
||||
})
|
||||
buttons := group.Group("/authorityBtn")
|
||||
buttons.POST("/getAuthorityBtn", func(c *gin.Context) {
|
||||
var req struct {
|
||||
MenuID uint `json:"menuID"`
|
||||
AuthorityID uint `json:"authorityId"`
|
||||
}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
fail(c, "参数错误")
|
||||
return
|
||||
}
|
||||
selected, err := svc.SelectedButtons(c.Request.Context(), req.AuthorityID, req.MenuID)
|
||||
if err != nil {
|
||||
fail(c, "查询失败")
|
||||
return
|
||||
}
|
||||
writeResult(c, codeSuccess, gin.H{"selected": selected}, "查询成功")
|
||||
})
|
||||
buttons.POST("/setAuthorityBtn", func(c *gin.Context) {
|
||||
var req struct {
|
||||
MenuID uint `json:"menuID"`
|
||||
AuthorityID uint `json:"authorityId"`
|
||||
Selected []uint `json:"selected"`
|
||||
}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
fail(c, "参数错误")
|
||||
return
|
||||
}
|
||||
if err := svc.SetSelectedButtons(c.Request.Context(), req.AuthorityID, req.MenuID, req.Selected); err != nil {
|
||||
fail(c, "分配失败")
|
||||
return
|
||||
}
|
||||
ok(c)
|
||||
})
|
||||
buttons.POST("/canRemoveAuthorityBtn", func(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.Query("id"), 10, 64)
|
||||
allowed, err := svc.CanRemoveButton(c.Request.Context(), uint(id))
|
||||
if err != nil {
|
||||
fail(c, "检查失败")
|
||||
return
|
||||
}
|
||||
if !allowed {
|
||||
fail(c, "此按钮正在被使用无法删除")
|
||||
return
|
||||
}
|
||||
ok(c)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user