Skip to content

clear_policy() doesn't clean casbin_rule table #25

@UnoYakshi

Description

@UnoYakshi

I'm trying to clean CasbinRule table via enforcer.clear_policy(), but my DB stays the same.

# Imports and stuff...

# Make enforcer via async-sqlalchemy-adapter...
async_db_engine = create_async_engine(str(settings.DATABASE_DSN))
sql_adapter = Adapter(async_db_engine)
enforcer = AsyncEnforcer(model=CASBIN_MODEL_PATH, adapter=sql_adapter)
enforcer.load_policy()

# Add some a group and a rule...
group = await enforcer.add_grouping_policy(
        '47b163b5-450e-4c7d-9cf9-bbcae5d9d260',
        'manager',
        'allow',
)
policy = await enforcer.add_permission_for_user(
        '47b163b5-450e-4c7d-9cf9-bbcae5d9d260',
        'project',
        'write',
        'allow',
    )

# Try to clean `CasbinRule` table...
enforcer.clear_policy()
enforcer.model.clear_policy()

And the table still has all the values, nothing's deleted. I expected clear_policy to remove all the table's data.
Image

Context

pycasbin==2.6.0
casbin-async-sqlalchemy-adapter==1.16.1
sqlalchemy==2.0.45
asyncpg==0.31.0

model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act, eft

[policy_effect]
e = some(where (p.eft == allow)) && !some(where (p.eft == deny))

[role_definition]
g = _, _

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

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions