自动加载权限
This commit is contained in:
parent
1d96278818
commit
b7fee9c7ca
@ -33,8 +33,7 @@ async def add_role_domain(
|
|||||||
casbin_enforcer.add_role_for_user_in_domain(user=item.username,
|
casbin_enforcer.add_role_for_user_in_domain(user=item.username,
|
||||||
role=item.role_id,
|
role=item.role_id,
|
||||||
domain=item.game)
|
domain=item.game)
|
||||||
casbin_enforcer.load_model()
|
|
||||||
casbin_enforcer.load_policy()
|
|
||||||
return schemas.Msg(code=0, msg='添加成功', data=True)
|
return schemas.Msg(code=0, msg='添加成功', data=True)
|
||||||
|
|
||||||
|
|
||||||
@ -75,8 +74,7 @@ async def del_role_domain(
|
|||||||
res = casbin_enforcer.delete_roles_for_user_in_domain(user=data_in.username,
|
res = casbin_enforcer.delete_roles_for_user_in_domain(user=data_in.username,
|
||||||
role=data_in.role_id,
|
role=data_in.role_id,
|
||||||
domain=data_in.game)
|
domain=data_in.game)
|
||||||
casbin_enforcer.load_model()
|
|
||||||
casbin_enforcer.load_policy()
|
|
||||||
await crud.role.delete_id(db, data_in.role_id)
|
await crud.role.delete_id(db, data_in.role_id)
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
@ -93,8 +91,7 @@ async def add_policy(
|
|||||||
res = 0
|
res = 0
|
||||||
for path in data_id.path_list:
|
for path in data_id.path_list:
|
||||||
res = casbin_enforcer.add_policy(data_id.role_id, data_id.game, path, data_id.act)
|
res = casbin_enforcer.add_policy(data_id.role_id, data_id.game, path, data_id.act)
|
||||||
casbin_enforcer.load_model()
|
|
||||||
casbin_enforcer.load_policy()
|
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@ -108,8 +105,7 @@ async def remove_policy(
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
res = casbin_enforcer.remove_policy(data_id.role_id, data_id.game, data_id.path, data_id.act)
|
res = casbin_enforcer.remove_policy(data_id.role_id, data_id.game, data_id.path, data_id.act)
|
||||||
casbin_enforcer.load_model()
|
|
||||||
casbin_enforcer.load_policy()
|
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@ -157,8 +153,7 @@ async def del_api(
|
|||||||
paths = await crud.api_list.find_ids(db, data_in.ids, {'path': 1})
|
paths = await crud.api_list.find_ids(db, data_in.ids, {'path': 1})
|
||||||
for item in paths:
|
for item in paths:
|
||||||
casbin_enforcer.remove_filtered_policy(2, item['path'])
|
casbin_enforcer.remove_filtered_policy(2, item['path'])
|
||||||
casbin_enforcer.load_model()
|
|
||||||
casbin_enforcer.load_policy()
|
|
||||||
# 删除保存的记录
|
# 删除保存的记录
|
||||||
res = await crud.api_list.del_api(db, data_in)
|
res = await crud.api_list.del_api(db, data_in)
|
||||||
|
|
||||||
|
@ -141,5 +141,8 @@ class Adapter(persist.Adapter):
|
|||||||
|
|
||||||
|
|
||||||
casbin_adapter = Adapter(settings.DATABASE_URI, settings.MDB_DB)
|
casbin_adapter = Adapter(settings.DATABASE_URI, settings.MDB_DB)
|
||||||
casbin_enforcer = casbin.Enforcer('rbac_model.conf', casbin_adapter)
|
casbin_enforcer = casbin.SyncedEnforcer('rbac_model.conf', casbin_adapter)
|
||||||
casbin_model = casbin_enforcer.get_model()
|
casbin_model = casbin_enforcer.get_model()
|
||||||
|
casbin_enforcer.start_auto_load_policy(30)
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ class SyncedEnforcer():
|
|||||||
return
|
return
|
||||||
self._auto_loading.value = True
|
self._auto_loading.value = True
|
||||||
self._auto_loading_thread = threading.Thread(target=self._auto_load_policy, args=[interval], daemon=True)
|
self._auto_loading_thread = threading.Thread(target=self._auto_load_policy, args=[interval], daemon=True)
|
||||||
|
self._auto_loading_thread.start()
|
||||||
|
|
||||||
def stop_auto_load_policy(self):
|
def stop_auto_load_policy(self):
|
||||||
"""stops the thread started by start_auto_load_policy"""
|
"""stops the thread started by start_auto_load_policy"""
|
||||||
|
Loading…
Reference in New Issue
Block a user