think-casbin
think-casbin copied to clipboard
多租户报错grouping policy elements do not meet role definition
` grouping policy elements do not meet role definition [request_definition] r = sub, dom, obj, act
[policy_definition] p = sub, dom, obj, act
[role_definition] g = _, _, _
[policy_effect] e = some(where (p.eft == allow))
[matchers] m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act
// 设置角色权限 Casbin::addPolicy('zzyRole','1', 'data1', 'filed', 'read'); // 设置用户角色 Casbin::AddRoleForUser('zzy','zzyRole','1');
`
AddRoleForUser 方法node版是有最后一个参数的
https://github.com/casbin/node-casbin/commit/e876217bcf4e352fc73bd98949c74812661c0e47
Go版是没有的 :https://github.com/casbin/casbin/blob/aabe6ce12e01f726e1fdc8182aafcff3a3902697/rbac_api.go#L54 你可以提向主库PHP-Casbin提 issue或PR。
另外 addPolicy
传的参数 和 定义的参数个数(r = sub, dom, obj, act) 不一致
$casbin->addRoleForUserInDomain
@544751779 $casbin->addRoleForUserInDomain()
这个是正解,如果解决了可以关掉哈~
还有一种情况也会出现这个错误。比如,rules表中已经有了数据,然后修改了lauthz.php
中model的配置config_file_path
或者config_text
,然后再去添加策略的时候,就会遇到这个错误