Changeset 8afbdd6 in Klonkt for src/middleware/auth.js
- Timestamp:
- 06/14/2026 06:07:51 PM (3 months ago)
- Branches:
- main
- Children:
- c869272
- Parents:
- b94c08e
- File:
-
- 1 edited
-
src/middleware/auth.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/middleware/auth.js
rb94c08e r8afbdd6 37 37 } 38 38 39 // Een 'kijker' mag ALLES bekijken (incl. Beheer) maar NIETS wijzigen. De 40 // schrijf-blokkade zit in de globale guard in server.js; deze helper bepaalt 41 // alleen "is dit een alleen-lezen account?". `readonly` is de legacy-vlag die 42 // we nog meenemen zodat niet-gemigreerde demo-accounts geblokkeerd blijven. 43 export function isViewer(user) { 44 return !!user && (user.role === 'kijker' || !!user.readonly); 45 } 46 39 47 export function requireGod(req, res, next) { 40 48 if (!req.session?.user) return loginRedirect(req, res); 41 if (req.session.user.role !== 'god') { 49 const role = req.session.user.role; 50 // god beheert; een kijker mág het Beheer-paneel zien (alleen-lezen) — de 51 // globale guard 403't elke write, dus dit geeft enkel kijk-toegang. 52 if (role !== 'god' && role !== 'kijker') { 42 53 return res.status(403).send('God role required'); 43 54 } … … 52 63 if (!req.session?.user) return loginRedirect(req, res); 53 64 const u = req.session.user; 54 if (u.role === 'god' ) return next();65 if (u.role === 'god' || u.role === 'kijker') return next(); // kijker = alleen-lezen kijk-toegang 55 66 const site = res.locals.site; 56 67 if (site && site.owner_id === u.id) return next(); … … 62 73 if (!req.session?.user) return loginRedirect(req, res); 63 74 const u = req.session.user; 64 if (u.role === 'god' ) return next();75 if (u.role === 'god' || u.role === 'kijker') return next(); // kijker = alleen-lezen kijk-toegang 65 76 const site = db.prepare('SELECT owner_id FROM sites WHERE slug = ?').get(req.params.slug); 66 77 if (site && site.owner_id === u.id) return next();
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)