Changeset 5e61b17 in Klonkt for src/routes
- Timestamp:
- 06/21/2026 03:16:51 PM (3 months ago)
- Branches:
- main
- Children:
- 11b3ba5
- Parents:
- 4885eab
- Location:
- src/routes
- Files:
-
- 3 edited
-
account.js (modified) (3 diffs)
-
admin-settings.js (modified) (3 diffs)
-
lang.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/account.js
r4885eab r5e61b17 26 26 import { googleConfigured } from '../config/google.js'; 27 27 import { toWebp } from '../services/ImageWebpService.js'; 28 import { SUPPORTED } from '../services/i18n.js'; 28 29 29 30 const __dirname = path.dirname(fileURLToPath(import.meta.url)); … … 60 61 router.get('/', requireAuth, (req, res) => { 61 62 const account = db.prepare(` 62 SELECT id, username, email, role, bio, avatar_url, created_at, password_hash, google_sub 63 SELECT id, username, email, role, bio, avatar_url, created_at, password_hash, google_sub, lang 63 64 FROM users WHERE id = ? 64 65 `).get(req.session.user.id); … … 80 81 }); 81 82 83 // ==================== PERSOONLIJKE INTERFACE-TAAL ==================== 84 // Slaat de taalkeuze op het account op (reist mee over apparaten/sessies) én 85 // zet 'm meteen in de sessie zodat 't direct effect heeft. 86 router.post('/lang', requireAuth, (req, res) => { 87 const code = SUPPORTED.includes(req.body.lang) ? req.body.lang : null; 88 if (code) { 89 db.prepare('UPDATE users SET lang = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?').run(code, req.session.user.id); 90 req.session.user.lang = code; 91 req.session.lang = code; 92 } 93 res.redirect('/account?success=' + encodeURIComponent('Taal opgeslagen')); 94 }); 95 82 96 // De site die deze gebruiker mag bewerken vanuit z'n account: z'n eigen site 83 97 // (owner_id), of voor een god de primaire site. Null als er niets is. -
src/routes/admin-settings.js
r4885eab r5e61b17 22 22 import { requireGod } from '../middleware/auth.js'; 23 23 import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js'; 24 import { SUPPORTED } from '../services/i18n.js'; 24 25 import { mailerStatus, sendMail } from '../config/mailer.js'; 25 26 import { entitlementStatus, premiumUnlocked } from '../services/PatreonService.js'; … … 78 79 hubHeroImage: getSetting('hub_hero_image') || '', 79 80 hubHeroOverlay: clampOverlay(getSetting('hub_hero_overlay')), 81 defaultLang: getSetting('default_lang') || '', 80 82 premium: entitlementStatus(), 81 83 google: { … … 108 110 } 109 111 setTenancy(req.body.tenancy); // valideert naar solo | hub | circle 112 } 113 if (typeof req.body.default_lang !== 'undefined') { 114 // Standaardtaal voor bezoekers (leeg = volg env/browser). Valideert tegen NL/EN/DE. 115 const dl = (req.body.default_lang || '').toString().toLowerCase(); 116 setSetting('default_lang', SUPPORTED.includes(dl) ? dl : ''); 110 117 } 111 118 if (typeof req.body.hub_title !== 'undefined') { -
src/routes/lang.js
r4885eab r5e61b17 3 3 import express from 'express'; 4 4 import { SUPPORTED } from '../services/i18n.js'; 5 import db from '../config/database.js'; 5 6 6 7 const router = express.Router(); … … 9 10 const code = SUPPORTED.includes(req.params.code) ? req.params.code : 'nl'; 10 11 if (req.session) req.session.lang = code; 12 // Ingelogd? Bewaar de keuze ook op het account zodat 'ie meereist over 13 // apparaten/sessies (niet alleen deze sessie-cookie). 14 if (req.session && req.session.user && req.session.user.id) { 15 try { 16 db.prepare('UPDATE users SET lang = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?').run(code, req.session.user.id); 17 req.session.user.lang = code; 18 } catch { /* lang-kolom ontbreekt op een oude DB → sessie-only, geen breuk */ } 19 } 11 20 // Veilige terug-URL: alleen een intern pad (geen open redirect). 12 21 let back = (typeof req.query.r === 'string') ? req.query.r : '';
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)