Changeset 31680c3 in Klonkt for src/routes/posts.js
- Timestamp:
- 09/30/2026 08:39:24 AM (3 hours ago)
- Branches:
- main
- Children:
- 746d98a
- Parents:
- 76bd53c
- File:
-
- 1 edited
-
src/routes/posts.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/posts.js
r76bd53c r31680c3 21 21 import ActivityPubService from '../services/ActivityPubService.js'; 22 22 import * as Guardianship from '../services/guardianship/index.js'; 23 import * as HubInvite from '../services/hub-invite.js'; 23 24 import { premiumUnlocked } from '../services/PatreonService.js'; 24 25 import { defaultMinCents as paidDefaultMinCents, patreonUrl as paidPatronUrl } from '../services/PaidPatreonService.js'; … … 1340 1341 connections, myGuardians, followRequests, 1341 1342 approveFollowers: !!(site && site.approve_followers), 1343 // [Add to HUB]: staat hij er al op, dan een bevestiging in plaats van de knop. 1344 hub: site ? { url: HubInvite.hubUrl(), onHub: HubInvite.onHub(site.slug), ward: myGuardians.length > 0 } : null, 1342 1345 // Na een verhuizing staat de uitgaande kant op slot. Dat hoort te blijken 1343 1346 // VOORDAT je op een knop drukt, niet daarna uit een foutmelding. … … 1369 1372 } 1370 1373 return res.redirect(`${base}/connect`); 1374 }); 1375 1376 // [Add to HUB] (Robin, 30-9): zet deze klonkt op de Klonkt Hub. 1377 // 1378 // De knop stuurt je naar het aanmeldformulier van de hub, vooraf ingevuld met 1379 // je eigen handle; aanmelden blijft daar een eigen klik. Hier gebeurt het 1380 // deel dat de hub niet kan: de eigenaar geeft alvast zijn ja voor de Follow 1381 // die daarop volgt, zodat hij straks niet zijn eigen aanmelding hoeft goed te 1382 // keuren (zie services/hub-invite.js). 1383 // 1384 // Staat er al een verzoek van de hub te wachten -- iemand meldde je eerder 1385 // aan -- dan is deze klik precies het ja waar dat verzoek op wacht, en hoef je 1386 // niet langs het formulier. Bij een WARD nooit: daar beslissen de guardians. 1387 router.post('/connect/add-to-hub', requireSiteManager, async (req, res) => { 1388 const site = res.locals.site; 1389 const base = res.locals.siteUrlBase || ''; 1390 if (!site) return res.redirect(`${base}/connect`); 1391 if (ActivityPubService.movedLock(site).movedTo) { 1392 return res.redirect(`${base}/connect?error=` + encodeURIComponent('Dit account is verhuisd')); 1393 } 1394 const pub = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 1395 const handle = ActivityPubService.deriveHandle(ActivityPubService.actorId(pub, site.slug)).replace(/^@/, ''); 1396 const hub = HubInvite.hubUrl(); 1397 const isWard = Guardianship.listGuardians(site.slug).length > 0; 1398 1399 if (!isWard) { 1400 const wacht = Guardianship.follows.listForWard(site.slug) 1401 .find((f) => f.status === 'pending' && HubInvite.isHubActor(f.follower_uri)); 1402 if (wacht) { 1403 await ActivityPubService.acceptGatedFollow(wacht); 1404 Guardianship.follows.remove(wacht.id); 1405 return res.redirect(303, `${hub}/?klonkt=${encodeURIComponent(handle)}`); 1406 } 1407 } 1408 HubInvite.invite(site.id); 1409 return res.redirect(303, `${hub}/?add=${encodeURIComponent(handle)}`); 1371 1410 }); 1372 1411
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)