fix: refactor and optimize Enforce() API (#2009)

This commit is contained in:
June
2023-06-22 16:45:24 +07:00
committed by GitHub
parent b817a55f9f
commit 463b3ad976
3 changed files with 29 additions and 15 deletions

View File

@ -76,8 +76,10 @@ func (c *ApiController) Enforce() {
}
res := []bool{}
for _, permission := range permissions {
enforceResult, err := object.Enforce(permission.GetId(), &request)
listPermissionIdMap := object.GroupPermissionsByModelAdapter(permissions)
for _, permissionIds := range listPermissionIdMap {
enforceResult, err := object.Enforce(permissionIds[0], &request, permissionIds...)
if err != nil {
c.ResponseError(err.Error())
return
@ -85,6 +87,7 @@ func (c *ApiController) Enforce() {
res = append(res, enforceResult)
}
c.ResponseOk(res)
}
@ -135,18 +138,8 @@ func (c *ApiController) BatchEnforce() {
}
res := [][]bool{}
listPermissionIdMap := map[string][]string{}
for _, permission := range permissions {
key := permission.Model + permission.Adapter
permissionIds, ok := listPermissionIdMap[key]
if !ok {
listPermissionIdMap[key] = []string{permission.GetId()}
} else {
listPermissionIdMap[key] = append(permissionIds, permission.GetId())
}
}
listPermissionIdMap := object.GroupPermissionsByModelAdapter(permissions)
for _, permissionIds := range listPermissionIdMap {
enforceResult, err := object.BatchEnforce(permissionIds[0], &requests, permissionIds...)
if err != nil {