Skip to content

[Bug] Adding policy programmatically is not applied #1058

@derkan

Description

@derkan

Want to prioritize this issue? Try:

issuehunt-to-marktext


Describe the bug

Adding policy programmatically is not applied.

To Reproduce

model.conf file:

[request_definition]
r = sub, obj, dom, act

[policy_definition]
p = sub, obj, dom, act, eft     #sub can't change position,must be first

[role_definition]
g = _, _, _

[policy_effect]
e = subjectPriority(p.eft) || deny

[matchers]
m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act

policy.csvfile:

p, usrrole, languages, domain1, read, allow
p, adminrole, languages, domain1, read, allow
p, adminrole, languages, domain1, update, allow

g, adminrole, usrrole, domain1
g, sysadm, adminrole, domain1

main.go file :

package main

import (
	"github.com/casbin/casbin/v2"
	"log"
)

func main() {
	e, err := casbin.NewEnforcer("model.conf", "policy.csv")
	if err != nil {
		log.Fatalf("error: model: %s", err)
	}
	ok, err := e.AddPolicy("sysadm", "languages", "domain1", "update", "deny")
	log.Printf("%v - custom policy: %v", err, ok)

	ok, err = e.Enforce("sysadm", "languages", "domain1", "update")
	log.Printf("%v - should be false: %v", err, ok)
}

Expected behavior
e.Enforce("sysadm", "languages", "domain1", "update") should return false

Screenshots

2022/07/25 15:45:47 <nil> - custom policy: true
2022/07/25 15:45:47 <nil> - should be false: true

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions