1340691923@qq.com ebbf4120bf 第一次提交
2022-01-26 16:40:50 +08:00

34 lines
686 B
Go

package rbac
import (
"github.com/casbin/casbin"
xormadapter "github.com/casbin/xorm-adapter"
)
var Enforcer *casbin.Enforcer
func Run(driverName string, datasource string) (err error) {
text := `
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = r.sub == p.sub && keyMatch(r.obj, p.obj) && (r.act == p.act || p.act == "*") || r.sub == "1"
`
policy := casbin.NewModel(text)
model := xormadapter.NewAdapter(driverName, datasource, true)
Enforcer = casbin.NewEnforcer(policy, model)
err = Enforcer.LoadPolicy()
if err != nil {
return
}
return
}