refactor: bind hot_reload event via EventDispatcher, add on_hot_reload to UserPermissions
This commit is contained in:
parent
c949a51f2e
commit
ce7eb2a193
@ -107,4 +107,7 @@ def load_rbac():
|
||||
env.invalidate_user_perm_cache = env.userpermissions.invalidate_user_cache
|
||||
env.invalidate_all_perm_caches = env.userpermissions.invalidate_all_user_caches
|
||||
env.invalidate_role_perm_cache = env.userpermissions.invalidate_rp_cache
|
||||
# Bind hot_reload event — instance method, WeakMethod safe (stored on env)
|
||||
if hasattr(env, 'event_dispatcher'):
|
||||
env.event_dispatcher.bind('hot_reload', env.userpermissions.on_hot_reload)
|
||||
register_rbac_event_listeners()
|
||||
|
||||
@ -98,6 +98,11 @@ class UserPermissions:
|
||||
# Async lock for rp_caches initialization (lazy init)
|
||||
self._rp_lock = None
|
||||
|
||||
def on_hot_reload(self, data=None):
|
||||
"""Event handler for hot_reload event. Clears all caches."""
|
||||
self.ur_caches.clear()
|
||||
self.invalidate_rp_cache()
|
||||
|
||||
def on_user_update(self, data):
|
||||
"""Event handler for users table update.
|
||||
Clears the specific user's permission cache.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user