Changeset 8cb1dc7 in Klonkt for src/middleware
- Timestamp:
- 06/14/2026 04:17:14 PM (3 months ago)
- Branches:
- main
- Children:
- 640b39c
- Parents:
- ccbd6a6
- Location:
- src/middleware
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/middleware/auth.js
rccbd6a6 r8cb1dc7 2 2 * Auth middleware 3 3 */ 4 5 import db from '../config/database.js'; 4 6 5 7 /** … … 42 44 next(); 43 45 } 46 47 // Mag de ingelogde user de HUIDIGE site (res.locals.site) beheren? god altijd; 48 // anders alleen de owner van die site. Gebruikt voor site-gescopete beheerroutes 49 // die een artiest via /user/<eigen-slug>/admin/... bereikt (res.locals.site is dan 50 // z'n eigen site; een vreemde slug levert een andere site -> 403). 51 export function requireSiteManager(req, res, next) { 52 if (!req.session?.user) return loginRedirect(req, res); 53 const u = req.session.user; 54 if (u.role === 'god') return next(); 55 const site = res.locals.site; 56 if (site && site.owner_id === u.id) return next(); 57 return res.status(403).send('Geen toegang tot deze site.'); 58 } 59 60 // Idem, maar de site wordt bepaald door de :slug-parameter (bv. site-edit). 61 export function requireSiteManagerBySlug(req, res, next) { 62 if (!req.session?.user) return loginRedirect(req, res); 63 const u = req.session.user; 64 if (u.role === 'god') return next(); 65 const site = db.prepare('SELECT owner_id FROM sites WHERE slug = ?').get(req.params.slug); 66 if (site && site.owner_id === u.id) return next(); 67 return res.status(403).send('Geen toegang tot deze site.'); 68 } -
src/middleware/render.js
rccbd6a6 r8cb1dc7 13 13 import { fileURLToPath } from 'url'; 14 14 import ejs from 'ejs'; 15 import db from '../config/database.js'; 15 16 import PermissionsService from '../services/PermissionsService.js'; 16 17 import { PLATFORMS as PLATFORMS_CATALOG } from '../services/PlatformIcons.js'; … … 36 37 const isPartial = req.headers['hx-request'] === 'true' || req.query.partial === '1'; 37 38 39 // Bezit deze (niet-god) user een eigen site? Bepaalt of 'ie een "Beheer"- 40 // ingang ziet (artiest-zelfbeheer). god ziet beheer sowieso (op rol). 41 const _u = req.session?.user || null; 42 const userOwnsSite = !!(_u && _u.role !== 'god' && 43 db.prepare('SELECT 1 FROM sites WHERE owner_id = ? LIMIT 1').get(_u.id)); 44 38 45 // Common locals 39 46 const locals = { 40 user: req.session?.user || null, 47 user: _u, 48 userOwnsSite, 41 49 site: data.site || res.locals.site || null, 42 50 audioTracks: data.audioTracks || res.locals.audioTracks || [],
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)