Changeset 1be21ba in Klonkt
- Timestamp:
- 06/16/2026 06:46:59 PM (3 months ago)
- Branches:
- main
- Children:
- 682d504
- Parents:
- e9229f2
- Location:
- src
- Files:
-
- 2 edited
-
routes/account.js (modified) (1 diff)
-
views/pages/account.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/account.js
re9229f2 r1be21ba 68 68 account, 69 69 hasPassword, 70 editableSite: ownedSite(req.session.user), 70 71 success: req.query.success || null, 71 72 error: req.query.error || null, 72 73 }); 74 }); 75 76 // De site die deze gebruiker mag bewerken vanuit z'n account: z'n eigen site 77 // (owner_id), of voor een god de primaire site. Null als er niets is. 78 function ownedSite(user) { 79 if (!user) return null; 80 let site = db.prepare('SELECT id, title, tagline, slug, owner_id FROM sites WHERE owner_id = ? ORDER BY created_at LIMIT 1').get(user.id); 81 if (!site && user.role === 'god') { 82 site = db.prepare('SELECT id, title, tagline, slug, owner_id FROM sites ORDER BY created_at LIMIT 1').get(); 83 } 84 return site || null; 85 } 86 87 // ==================== UPDATE SITE-NAAM (eigenaar) ==================== 88 router.post('/site', requireAuth, (req, res) => { 89 const site = ownedSite(req.session.user); 90 if (!site) return res.redirect('/account?error=' + encodeURIComponent('Geen site om te bewerken.')); 91 if (site.owner_id !== req.session.user.id && req.session.user.role !== 'god') { 92 return res.redirect('/account?error=' + encodeURIComponent('Geen rechten om deze site te bewerken.')); 93 } 94 const title = (req.body.site_title || '').toString().slice(0, 200).trim(); 95 if (!title) return res.redirect('/account?error=' + encodeURIComponent('Site-naam mag niet leeg zijn.')); 96 const tagline = (req.body.site_tagline || '').toString().slice(0, 200).trim(); 97 db.prepare('UPDATE sites SET title = ?, tagline = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?') 98 .run(title, tagline || null, site.id); 99 res.redirect('/account?success=' + encodeURIComponent('Site-naam bijgewerkt')); 73 100 }); 74 101 -
src/views/pages/account.ejs
re9229f2 r1be21ba 86 86 </section> 87 87 88 <%# ── SITE (eigenaar mag de naam van z'n site aanpassen) ── %> 89 <% if (typeof editableSite !== 'undefined' && editableSite && canMutate) { %> 90 <section class="ax-card"> 91 <div class="ax-card-title">Site</div> 92 <form action="/account/site" method="post" class="ax-form"> 93 <label class="ax-field"> 94 <span>Site-naam <small>— getoond in de kop van je site</small></span> 95 <input type="text" name="site_title" value="<%= editableSite.title || '' %>" maxlength="200" required> 96 </label> 97 <label class="ax-field"> 98 <span>Tagline <small>— korte oneliner (optioneel)</small></span> 99 <input type="text" name="site_tagline" value="<%= editableSite.tagline || '' %>" maxlength="200"> 100 </label> 101 <div class="ax-form-actions"> 102 <button type="submit" class="ax-btn ax-btn-primary">Site opslaan</button> 103 </div> 104 </form> 105 </section> 106 <% } %> 107 88 108 <%# ── WACHTWOORD ────────────────────────────────────────── %> 89 109 <%# In kijker-modus geen wachtwoord-sectie (niets te wijzigen). %>
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)