mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 10:45:47 +08:00
feat: fix Effect
in Casbin rule (#2103)
* fix: Add `Effect` to Casbin rule of role fix: https://github.com/casdoor/casdoor/issues/2102 * Update permission_enforcer.go --------- Co-authored-by: hsluoyz <hsluoyz@qq.com>
This commit is contained in:
parent
e850e33f37
commit
58e8f9f90b
@ -104,29 +104,16 @@ func getPolicies(permission *Permission) [][]string {
|
|||||||
permissionId := permission.GetId()
|
permissionId := permission.GetId()
|
||||||
domainExist := len(permission.Domains) > 0
|
domainExist := len(permission.Domains) > 0
|
||||||
|
|
||||||
for _, user := range permission.Users {
|
usersAndRoles := append(permission.Users, permission.Roles...)
|
||||||
|
for _, userOrRole := range usersAndRoles {
|
||||||
for _, resource := range permission.Resources {
|
for _, resource := range permission.Resources {
|
||||||
for _, action := range permission.Actions {
|
for _, action := range permission.Actions {
|
||||||
if domainExist {
|
if domainExist {
|
||||||
for _, domain := range permission.Domains {
|
for _, domain := range permission.Domains {
|
||||||
policies = append(policies, []string{user, domain, resource, strings.ToLower(action), permission.Effect, permissionId})
|
policies = append(policies, []string{userOrRole, domain, resource, strings.ToLower(action), strings.ToLower(permission.Effect), permissionId})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
policies = append(policies, []string{user, resource, strings.ToLower(action), permission.Effect, "", permissionId})
|
policies = append(policies, []string{userOrRole, resource, strings.ToLower(action), strings.ToLower(permission.Effect), "", permissionId})
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, role := range permission.Roles {
|
|
||||||
for _, resource := range permission.Resources {
|
|
||||||
for _, action := range permission.Actions {
|
|
||||||
if domainExist {
|
|
||||||
for _, domain := range permission.Domains {
|
|
||||||
policies = append(policies, []string{role, domain, resource, strings.ToLower(action), "", permissionId})
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
policies = append(policies, []string{role, resource, strings.ToLower(action), "", "", permissionId})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user