Changeset 72ec6a4 in Klonkt for src/routes/admin.js


Ignore:
Timestamp:
07/31/2026 06:55:59 PM (6 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
17546af
Parents:
bfa6fa1
Message:

Hub-modus en guardian-lite eruit

Robins besluit (31-7): een instance is een eigenaar. Twee dingen weg.

HUB-MODUS was al dood: getTenancy() gaf sinds 24-6 hardcoded 'solo'
terug, dus elke tenancy === 'hub'-tak was onbereikbaar. Nu ook echt
verwijderd: getTenancy/setTenancy zelf, de /user/:slug-routing in
resolveSite, de hub-takken in admin, zoeken, audio, posts (neighbours
en related over alle sites), download, en de push-prefix. In de views
verdwijnen de hub-tagline, de hub-navigatie, de sites- en
users-tabellen (die kwamen alleen in hub-modus gevuld en verwezen nu
naar locals die niemand meer meegeeft), de eigenaar-toewijzing bij een
site, de /user/-slugprefix, het hub-brandblok en de hub-thuisknop.

GUARDIAN-LITE was de laatste multi-user-rest: /guardian/invite gaf een
link waarmee iemand via /guardian/join een echte user plus een site met
guardian_only=1 aanmaakte. Dat zette andermans wachtwoordhash, sessie
en PRIVATE actor-sleutel in jouw database, waardoor een verhuizing of
export nooit netjes kon (shaer-qw6q). Routes, formulier, kolom en
uitnodigingstabel zijn weg. Het guardian-DASHBOARD blijft: dat is
FEP-633c en werkt voor guardians met een eigen Klonkt. Bestaande
installaties houden kolom en tabel ongebruikt; nieuwe krijgen ze niet.

Changed files:
src/services/SettingsService.js

  • getTenancy/setTenancy verwijderd; kop herschreven

src/middleware/site.js, src/middleware/render.js

  • /user/:slug-routing weg; tenancy en hubTitle uit de locals

src/routes/admin.js, admin-settings.js, audio.js, download.js,
src/routes/posts.js, search.js

  • hub-takken en hub-queries weg; postNeighbors zonder isHub

src/services/ActivityPubService.js

  • pushPrefix is nu gewoon ; getTenancy-import weg

src/routes/guardian.js

  • /invite en /join verwijderd (dashboard blijft), imports opgeschoond

src/config/database.js

  • guardian_only-kolom en ap_guardian_invites-tabel niet meer aangemaakt

src/views/pages/admin.ejs, admin-users.ejs, admin-site-edit.ejs,
src/views/pages/guardian.ejs, partials/topnav.ejs, chrome.ejs, bottom-tab.ejs

  • alle hub-takken en de uitnodigingsknop weg

remarks: 320 regels weg, 63 erbij. Suite 372 groen; alle 85 templates
compileren; en met een wegwerp-kopie van de database daadwerkelijk
gedraaid en ingelogd: /, /admin, /admin/users, /admin/sites,
/admin/settings, /admin/sites/demo/edit, /admin/media en /guardian
geven alle 200 zonder fouten in het log, en /guardian/invite en
/guardian/join geven nu 404.

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin.js

    rbfa6fa1 r72ec6a4  
    99import { renderPage } from '../middleware/render.js';
    1010import { requireAuth } from '../middleware/auth.js';
    11 import { getTenancy, apEnabled } from '../services/SettingsService.js';
     11import { apEnabled } from '../services/SettingsService.js';
    1212import { getPrimarySite } from '../middleware/site.js';
    1313
     
    1717// Solves the problem that drafts (status != published) were not findable anywhere:
    1818// the timeline shows only published posts.
    19 function sitePosts(siteId, siteSlug, tenancy, limit = 60) {
    20   const base = tenancy === 'hub' ? `/user/${siteSlug}` : '';
     19function sitePosts(siteId, siteSlug, limit = 60) {
     20  const base = '';
    2121  return db.prepare(`
    2222    SELECT slug, title, status, published_at, created_at, updated_at
     
    5353      mySite,
    5454      mine,
    55       posts: sitePosts(mySite.id, mySite.slug, 'hub'), // my-site is hub-only
     55      posts: sitePosts(mySite.id, mySite.slug),
    5656    });
    5757  }
    5858
    59   const tenancy = getTenancy();
    60 
    61   // The primary/main site — in solo THE site, in hub the main site. Provides the
    62   // "Appearance" tile with its edit link + the posts/drafts list.
     59  // THE site: it provides the "Appearance" tile with its edit link and the
     60  // posts/drafts list.
    6361  const primarySite = getPrimarySite();
    6462
     
    7270  };
    7371
    74   // Sites/users tables are only relevant in hub mode; in solo we skip the query.
    75   const sites = tenancy === 'hub' ? db.prepare(`
    76     SELECT s.slug, s.title, s.created_at, u.username AS owner_username
    77     FROM sites s
    78     LEFT JOIN users u ON u.id = s.owner_id
    79     ORDER BY s.created_at DESC
    80     LIMIT 50
    81   `).all() : [];
    82 
    83   const users = tenancy === 'hub' ? db.prepare(`
    84     SELECT username, email, role, created_at
    85     FROM users
    86     ORDER BY created_at DESC
    87     LIMIT 50
    88   `).all() : [];
    89 
    90   // Posts/drafts of the primary site (in solo = the site; in hub = the admin's
    91   // main site). Drafts are listed first so they are easy to find.
    92   const posts = primarySite ? sitePosts(primarySite.id, primarySite.slug, tenancy) : [];
     72  // Posts/drafts of the site. Drafts are listed first so they are easy to find.
     73  const posts = primarySite ? sitePosts(primarySite.id, primarySite.slug) : [];
    9374
    9475  renderPage(req, res, 'pages/admin', {
    9576    pageTitleKey: 'admin.t_admin',
    9677    bodyClass: 'on-admin',
    97     tenancy,
    98     circlesOn: apEnabled(),   // solo vs cirkels tagline (federatie aan/uit)
     78    circlesOn: apEnabled(),   // federatie aan/uit in de tagline
    9979    primarySite,
    10080    stats,
    101     sites,
    10281    posts,
    103     users,
    10482  });
    10583});
     
    11189    pageTitleKey: 'admin.t_manual',
    11290    bodyClass: 'on-admin',
    113     tenancy: getTenancy(),
    11491  });
    11592});
Note: See TracChangeset for help on using the changeset viewer.