feat: optimize batch-enforce (#1997)

This commit is contained in:
June
2023-06-22 13:40:09 +07:00
committed by GitHub
parent cadb533595
commit 2c2ddfbb92
2 changed files with 23 additions and 5 deletions

View File

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