Changeset 1be21ba in Klonkt for src/routes/account.js


Ignore:
Timestamp:
06/16/2026 06:46:59 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
682d504
Parents:
e9229f2
Message:

Account: owner can edit site name + tagline in account settings

New "Site" section on /account (owner / god only): edit site_title +
tagline via POST /account/site (ownership check). A quick place to change
the site name without navigating to Appearance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/account.js

    re9229f2 r1be21ba  
    6868    account,
    6969    hasPassword,
     70    editableSite: ownedSite(req.session.user),
    7071    success: req.query.success || null,
    7172    error: req.query.error || null,
    7273  });
     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.
     78function 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) ====================
     88router.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'));
    73100});
    74101
Note: See TracChangeset for help on using the changeset viewer.