From ce1d99e1bcccf11bc8414a22744c1808ff1e4cad Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 20 Mar 2026 17:11:06 +0800 Subject: [PATCH] bugfix --- rbac/userperm.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/rbac/userperm.py b/rbac/userperm.py index 8a5d9fa..3d29cfa 100644 --- a/rbac/userperm.py +++ b/rbac/userperm.py @@ -46,16 +46,18 @@ where a.id = c.userid return path in paths async def is_user_has_path_perm(self, userid, path): - roles = self.ur_caches.get(userid) - if userid is None: - roles = ['anonymous'] - + roles = None if self.ur_caches is None: async with get_sor_context(env, 'rbac') as sor: await self.load_roleperms(sor) + if userid: + roles = self.ur_caches.get(userid) + if not roles: + await self.get_userroles(sor, userid) + roles = self.ur_caches.get(userid) - if not roles: - await self.get_userroles(sor, userid) + if userid is None: + roles = ['anonymous'] return self.check_roles_path(roles, path)