Files
EnGin/internal/api/casbin_api/casbin_policy_list.go
T

49 lines
1.0 KiB
Go

package casbin_api
import (
"EnGin/internal/db"
"EnGin/internal/global"
"EnGin/internal/utils/res"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type PolicyListResponse struct {
Policies [][]string `json:"policies"`
GroupingPolicies [][]string `json:"grouping_policies"`
}
func (CasbinApi) CasbinPolicyListView(c *gin.Context) {
// 获取所有策略
policies, err := db.GlobalEnforcer.GetPolicy()
if err != nil {
global.Log.Error("获取策略失败", zap.Error(err))
res.FailWithMsg("获取策略失败", c)
return
}
if policies == nil {
policies = [][]string{}
}
// 获取所有角色继承关系
groupingPolicies, err := db.GlobalEnforcer.GetGroupingPolicy()
if err != nil {
global.Log.Error("获取继承策略失败", zap.Error(err))
res.FailWithMsg("获取继承策略失败", c)
return
}
if groupingPolicies == nil {
groupingPolicies = [][]string{}
}
policyAllList := PolicyListResponse{
Policies: policies,
GroupingPolicies: groupingPolicies,
}
res.OkWithData(policyAllList, c)
}