Changeset 1ee967d in Klonkt


Ignore:
Timestamp:
06/20/2026 02:27:07 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
1720482
Parents:
795c925
Message:

fix(render): refresh viewer avatar + role from DB (stale session self-heal)

The topnav avatar (and role-dependent UI) came from the session blob, which
is captured on login. After the WebP migration an existing session still
pointed to the old .png → broken avatar until re-login. renderPage now reads
avatar_url + role fresh from the DB per render (one indexed lookup), so
avatar/role changes take effect immediately without re-login.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/middleware/render.js

    r795c925 r1ee967d  
    4949  // Bezit deze (niet-god) user een eigen site? Bepaalt of 'ie een "Beheer"-
    5050  // ingang ziet (artiest-zelfbeheer). god ziet beheer sowieso (op rol).
    51   const _u = req.session?.user || null;
     51  let _u = req.session?.user || null;
     52  // Ververs avatar + rol uit de DB zodat een stale sessie (bv. na een
     53  // avatar-wijziging of rolwissel) zichzelf herstelt zonder opnieuw inloggen.
     54  if (_u && _u.id) {
     55    const _fresh = db.prepare('SELECT avatar_url, role FROM users WHERE id = ?').get(_u.id);
     56    if (_fresh) _u = { ..._u, avatar_url: _fresh.avatar_url, role: _fresh.role };
     57  }
    5258  const userOwnsSite = !!(_u && _u.role !== 'god' &&
    5359    db.prepare('SELECT 1 FROM sites WHERE owner_id = ? LIMIT 1').get(_u.id));
Note: See TracChangeset for help on using the changeset viewer.