source: Klonkt/src/services/SettingsService.js@ bfd9c73

main
Last change on this file since bfd9c73 was 72ec6a4, checked in by Robin <roboburr@…>, 6 weeks ago

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@…>

  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[72ec6a4]1// Global app settings (key/value, cached).
[6351545]2//
[72ec6a4]3// One instance is one owner (Robins besluit, 31-7-2026). The old tenancy modes
4// (hub = many artists on one domain, circle) are gone, code and all: the
5// branches were already unreachable and have now been deleted.
[6351545]6//
[834bcc3]7// The cache is updated immediately on setSetting, so a toggle in admin
8// takes effect live without a restart.
[6351545]9
10import db from '../config/database.js';
11
12let _cache = null;
13
14function load() {
15 if (!_cache) {
16 _cache = {};
17 for (const r of db.prepare('SELECT key, value FROM app_settings').all()) {
18 _cache[r.key] = r.value;
19 }
20 }
21 return _cache;
22}
23
24export function getSetting(key, fallback = null) {
25 const v = load()[key];
26 return v === undefined ? fallback : v;
27}
28
29export function setSetting(key, value) {
30 db.prepare(`
31 INSERT INTO app_settings (key, value, updated_at) VALUES (?, ?, CURRENT_TIMESTAMP)
32 ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = CURRENT_TIMESTAMP
33 `).run(key, String(value));
34 if (_cache) _cache[key] = String(value);
35}
36
[283f618]37// ActivityPub / fediverse federation. ON by default. '0' = off: the site does
38// not federate, /ap/* is gone, and the "from the fediverse" reactions disappear
39// — which (since native comments were removed) means no comments at all.
40export function apEnabled() {
41 return getSetting('ap_enabled', '1') !== '0';
42}
Note: See TracBrowser for help on using the repository browser.