Skip to content

SQLAlchemy adapter object has no attribute update_policy #41

@GeekDot

Description

@GeekDot

Source code:

import casbin
import casbin_sqlalchemy_adapter


model = casbin.Model()
model.add_def("r", "r", "sub, obj, act")
model.add_def("p", "p", "sub, obj, act")
model.add_def("g", "g", "_, _")
model.add_def("e", "e", "some(where (p.eft == allow))")
model.add_def("m", "m", "g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act")

adapter = casbin_sqlalchemy_adapter.Adapter('mysql+pymysql://db_account:db_password@127.0.0.1:3306/demo')

e = casbin.Enforcer(model, adapter)

e.add_policy('admin', 'r')
e.update_policy(['admin', 'r'], ['admin', 'w'])

Running results:

Traceback (most recent call last):
  File "/Users/zhangyi/Documents/vianet/vnet.service.lib/casbinLib/casbinLib/__init__.py", line 106, in <module>
    e.update_policy(['admin', 'r'], ['admin', 'w'])
  File "/Users/zhangyi/.virtualenvs/vnet.service.lib/lib/python3.8/site-packages/casbin/management_enforcer.py", line 125, in update_policy
    return self.update_named_policy("p", old_rule, new_rule)
  File "/Users/zhangyi/.virtualenvs/vnet.service.lib/lib/python3.8/site-packages/casbin/management_enforcer.py", line 133, in update_named_policy
    return self._update_policy("p", ptype, old_rule, new_rule)
  File "/Users/zhangyi/.virtualenvs/vnet.service.lib/lib/python3.8/site-packages/casbin/internal_enforcer.py", line 52, in _update_policy
    if self.adapter.update_policy(sec, ptype, old_rule, new_rule) is False:
AttributeError: 'Adapter' object has no attribute 'update_policy'

SQLAlchemy adapter object has no attribute update_policy, hope the author add, thank you!:)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions