fix: keep previous rp_caches when DB returns empty result
sqlExe can return [] without raising an exception (bad connection,
cursor issue). When load_roleperms gets 0 records but had valid
cache before, keep the old cache instead of replacing with {}.
Prevents intermittent 403 from transient DB issues.
This commit is contained in:
parent
fbbe011a8d
commit
b532548d19
@ -246,6 +246,10 @@ where a.permid = b.id
|
|||||||
and c.id = a.roleid
|
and c.id = a.roleid
|
||||||
order by c.orgtypeid, c.name"""
|
order by c.orgtypeid, c.name"""
|
||||||
recs = await sor.sqlExe(sql_all, {})
|
recs = await sor.sqlExe(sql_all, {})
|
||||||
|
if len(recs) == 0 and self.rp_caches:
|
||||||
|
# DB returned empty — likely a bad connection. Keep previous valid cache.
|
||||||
|
debug(f'load_roleperms: got 0 records, keeping previous cache ({sum(len(v) for v in self.rp_caches.values())} paths)')
|
||||||
|
return
|
||||||
for r in recs:
|
for r in recs:
|
||||||
if r.id == 'anonymous':
|
if r.id == 'anonymous':
|
||||||
k = 'anonymous'
|
k = 'anonymous'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user