Changeset bdc3c1e in Klonkt


Ignore:
Timestamp:
06/16/2026 04:23:01 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
974de34
Parents:
a742e9f
Message:

Always guarantee a primary site (solo/hub/circle) via ensurePrimarySite

An admin created via a script (or an empty sites table) left an instance
without a site → no settings, dashboard crashed. New boot-time helper
ensurePrimarySite() idempotently creates a default site when there is an
admin but no site. Dashboard shows "Create your site" as an extra fallback
if no site exists unexpectedly.

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

Location:
src
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • src/server.js

    ra742e9f rbdc3c1e  
    1717import db, { initializeDatabase } from './config/database.js';
    1818import { SqliteSessionStore } from './services/SqliteSessionStore.js';
     19import { ensurePrimarySite } from './services/ensurePrimarySite.js';
    1920import PrutterService from './services/PrutterService.js';
    2021import { WebSocketServer } from 'ws';
     
    131132initializeDatabase();
    132133
     134// Vangnet: garandeer dat er altijd een primaire site is (solo/hub/circle).
     135// Idempotent — doet niets als er al een site is of nog geen beheerder.
     136ensurePrimarySite();
     137
    133138// Session middleware extracted into a variable so the WebSocket upgrade
    134139// handler can reuse it (it needs req.session to authenticate sockets).
  • src/views/pages/admin.ejs

    ra742e9f rbdc3c1e  
    2121      <% if (primarySite) { %>
    2222        <a href="/admin/sites/<%= primarySite.slug %>/edit" class="btn">🎨 Uiterlijk</a>
     23      <% } else { %>
     24        <a href="/admin/sites/new" class="btn">🎨 Maak je site aan</a>
    2325      <% } %>
    2426      <% if (tenancy === 'circle') { %>
Note: See TracChangeset for help on using the changeset viewer.