Compare commits

...

2 Commits

Author SHA1 Message Date
yumoqing
668e29b579 bugfix 2026-03-21 16:14:23 +08:00
yumoqing
f3caac310d bugfix 2026-03-21 16:09:48 +08:00
3 changed files with 8 additions and 25 deletions

View File

@ -160,32 +160,13 @@ where c.userid = ${userid}$
userid = await getAuthenticationUserid(sor, request) userid = await getAuthenticationUserid(sor, request)
uperm = UserPermissions() uperm = UserPermissions()
ret = await uperm.is_user_has_path_perm(userid, path) ret = await uperm.is_user_has_path_perm(userid, path)
roles = await uperm.get_user_roles(userid) """
rp_keys = [k for k in uperm.rp_caches.keys()] if not ret:
debug(f'{userid=}, {path=} permission is {ret},userroles={roles}, {rp_keys}') roles = await uperm.get_user_roles(userid)
rp_keys = [k for k in uperm.rp_caches.keys()]
debug(f'{userid=}, {path=} permission is {ret},userroles={roles}')
"""
return ret return ret
"""
perms = await sor.R('permission', {'path':path})
if len(perms) == 0:
debug(f'{path=} not found in permission, can access')
return True
if userid is None:
debug(f'{userid=} is None, can not access {path=}')
return False
recs = await sor.sqlExe(sql, {'path':path, 'userid':userid})
for r in recs:
id = r['id']
if id is not None:
debug(f'{userid=} can access {path=}')
return True
debug(f'{userid=} has not permission to call {path=}')
return False
e = db.e_except
debug(f'objcheckperm() error happened {userid}, {path}, {e}\n{format_exc()}')
return False
"""
registered_auth_methods = { registered_auth_methods = {
"Basic ": basic_auth "Basic ": basic_auth

View File

@ -8,6 +8,7 @@ async with get_sor_context(request._run_ns, 'rbac') as sor:
d.append(f'{r.orgtypeid}.{r.name}') d.append(f'{r.orgtypeid}.{r.name}')
d.append(f'{r.orgtypeid}.*') d.append(f'{r.orgtypeid}.*')
d.append(f'*.{r.name}') d.append(f'*.{r.name}')
debug(f'roles={d}')
d = sorted(list(set(d))) d = sorted(list(set(d)))
return d return d
return [] return []

View File

@ -10,6 +10,7 @@ async with get_sor_context(request._run_ns, 'rbac') as sor:
continue continue
else: else:
d.append(f'{r.orgtypeid}.{r.name}') d.append(f'{r.orgtypeid}.{r.name}')
debug(f'roles={d}')
d = sorted(list(set(d))) d = sorted(list(set(d)))
return d return d
return [] return []