mirror of
https://github.com/casdoor/casdoor.git
synced 2025-09-08 12:11:03 +08:00
Add error to Enforce()
This commit is contained in:
@@ -44,7 +44,15 @@ func (c *ApiController) Enforce() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if permissionId != "" {
|
if permissionId != "" {
|
||||||
c.ResponseOk(object.Enforce(permissionId, &request))
|
enforceResult, err := object.Enforce(permissionId, &request)
|
||||||
|
if err != nil {
|
||||||
|
c.ResponseError(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
res := []bool{}
|
||||||
|
res = append(res, enforceResult)
|
||||||
|
c.ResponseOk(res)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +77,13 @@ func (c *ApiController) Enforce() {
|
|||||||
|
|
||||||
res := []bool{}
|
res := []bool{}
|
||||||
for _, permission := range permissions {
|
for _, permission := range permissions {
|
||||||
res = append(res, object.Enforce(permission.GetId(), &request))
|
enforceResult, err := object.Enforce(permission.GetId(), &request)
|
||||||
|
if err != nil {
|
||||||
|
c.ResponseError(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
res = append(res, enforceResult)
|
||||||
}
|
}
|
||||||
c.ResponseOk(res)
|
c.ResponseOk(res)
|
||||||
}
|
}
|
||||||
@@ -95,7 +109,15 @@ func (c *ApiController) BatchEnforce() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if permissionId != "" {
|
if permissionId != "" {
|
||||||
c.ResponseOk(object.BatchEnforce(permissionId, &requests))
|
enforceResult, err := object.BatchEnforce(permissionId, &requests)
|
||||||
|
if err != nil {
|
||||||
|
c.ResponseError(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
res := [][]bool{}
|
||||||
|
res = append(res, enforceResult)
|
||||||
|
c.ResponseOk(res)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,7 +136,13 @@ func (c *ApiController) BatchEnforce() {
|
|||||||
|
|
||||||
res := [][]bool{}
|
res := [][]bool{}
|
||||||
for _, permission := range permissions {
|
for _, permission := range permissions {
|
||||||
res = append(res, object.BatchEnforce(permission.GetId(), &requests))
|
enforceResult, err := object.BatchEnforce(permission.GetId(), &requests)
|
||||||
|
if err != nil {
|
||||||
|
c.ResponseError(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
res = append(res, enforceResult)
|
||||||
}
|
}
|
||||||
c.ResponseOk(res)
|
c.ResponseOk(res)
|
||||||
}
|
}
|
||||||
|
@@ -241,33 +241,29 @@ func removePolicies(permission *Permission) {
|
|||||||
|
|
||||||
type CasbinRequest = []interface{}
|
type CasbinRequest = []interface{}
|
||||||
|
|
||||||
func Enforce(permissionId string, request *CasbinRequest) bool {
|
func Enforce(permissionId string, request *CasbinRequest) (bool, error) {
|
||||||
permission, err := GetPermission(permissionId)
|
permission, err := GetPermission(permissionId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
enforcer := getEnforcer(permission)
|
enforcer := getEnforcer(permission)
|
||||||
|
return enforcer.Enforce(*request...)
|
||||||
allow, err := enforcer.Enforce(*request...)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return allow
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BatchEnforce(permissionId string, requests *[]CasbinRequest) []bool {
|
func BatchEnforce(permissionId string, requests *[]CasbinRequest) ([]bool, error) {
|
||||||
permission, err := GetPermission(permissionId)
|
permission, err := GetPermission(permissionId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
res := []bool{}
|
||||||
|
for i := 0; i < len(*requests); i++ {
|
||||||
|
res = append(res, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
enforcer := getEnforcer(permission)
|
enforcer := getEnforcer(permission)
|
||||||
allow, err := enforcer.BatchEnforce(*requests)
|
return enforcer.BatchEnforce(*requests)
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return allow
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllValues(userId string, fn func(enforcer *casbin.Enforcer) []string) []string {
|
func getAllValues(userId string, fn func(enforcer *casbin.Enforcer) []string) []string {
|
||||||
|
Reference in New Issue
Block a user