mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 18:54:03 +08:00
Support modelId arg in Enforce() API
This commit is contained in:
parent
776a682fae
commit
6f0b7f3f24
@ -18,10 +18,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/casdoor/casdoor/object"
|
"github.com/casdoor/casdoor/object"
|
||||||
|
"github.com/casdoor/casdoor/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *ApiController) Enforce() {
|
func (c *ApiController) Enforce() {
|
||||||
permissionId := c.Input().Get("permissionId")
|
permissionId := c.Input().Get("permissionId")
|
||||||
|
modelId := c.Input().Get("modelId")
|
||||||
|
|
||||||
var request object.CasbinRequest
|
var request object.CasbinRequest
|
||||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &request)
|
err := json.Unmarshal(c.Ctx.Input.RequestBody, &request)
|
||||||
@ -30,12 +32,25 @@ func (c *ApiController) Enforce() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Data["json"] = object.Enforce(permissionId, &request)
|
if permissionId != "" {
|
||||||
c.ServeJSON()
|
c.Data["json"] = object.Enforce(permissionId, &request)
|
||||||
|
c.ServeJSON()
|
||||||
|
} else {
|
||||||
|
owner, modelName := util.GetOwnerAndNameFromId(modelId)
|
||||||
|
permissions := object.GetPermissionsByModel(owner, modelName)
|
||||||
|
|
||||||
|
res := []bool{}
|
||||||
|
for _, permission := range permissions {
|
||||||
|
res = append(res, object.Enforce(permission.GetId(), &request))
|
||||||
|
}
|
||||||
|
c.Data["json"] = res
|
||||||
|
c.ServeJSON()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApiController) BatchEnforce() {
|
func (c *ApiController) BatchEnforce() {
|
||||||
permissionId := c.Input().Get("permissionId")
|
permissionId := c.Input().Get("permissionId")
|
||||||
|
modelId := c.Input().Get("modelId")
|
||||||
|
|
||||||
var requests []object.CasbinRequest
|
var requests []object.CasbinRequest
|
||||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &requests)
|
err := json.Unmarshal(c.Ctx.Input.RequestBody, &requests)
|
||||||
@ -44,8 +59,20 @@ func (c *ApiController) BatchEnforce() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Data["json"] = object.BatchEnforce(permissionId, &requests)
|
if permissionId != "" {
|
||||||
c.ServeJSON()
|
c.Data["json"] = object.BatchEnforce(permissionId, &requests)
|
||||||
|
c.ServeJSON()
|
||||||
|
} else {
|
||||||
|
owner, modelName := util.GetOwnerAndNameFromId(modelId)
|
||||||
|
permissions := object.GetPermissionsByModel(owner, modelName)
|
||||||
|
|
||||||
|
res := [][]bool{}
|
||||||
|
for _, permission := range permissions {
|
||||||
|
res = append(res, object.BatchEnforce(permission.GetId(), &requests))
|
||||||
|
}
|
||||||
|
c.Data["json"] = res
|
||||||
|
c.ServeJSON()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApiController) GetAllObjects() {
|
func (c *ApiController) GetAllObjects() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user