Changeset 3a0ca0f in Klonkt for src/services/ActivityPubService.js
- Timestamp:
- 08/08/2026 08:27:03 PM (4 weeks ago)
- Branches:
- main
- Children:
- ea211b9
- Parents:
- d1075a1
- git-author:
- Robin <roboburr@…> (08/08/2026 08:27:01 PM)
- git-committer:
- roboburr <roboburr@…> (08/08/2026 08:27:03 PM)
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
rd1075a1 r3a0ca0f 5422 5422 5423 5423 // Follow a fediverse account by @handle (WebFinger → actor → signed Follow). 5424 export async function followActor(site, handle, autoBoost = false ) {5424 export async function followActor(site, handle, autoBoost = false, { approved = false } = {}) { 5425 5425 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 5426 5426 if (!base || !site || !site.slug) return { error: 'config' }; 5427 // DE POORT STAAT HIER, en niet alleen in de C2S-outbox (shaer-p729, Barts 5428 // melding 8-8: de volgverzoeken van Esmee kwamen nooit bij haar guardians 5429 // aan). Hij stond in `case 'Follow'` van de outbox -- dus alleen als je via 5430 // Shaer volgt. Volgde het kind vanuit Klonkts eigen webinterface, dan werd er 5431 // geen verzoek aangemaakt, ging er niets naar de guardians, en was er dus ook 5432 // niets om te beantwoorden. Precies dezelfde deur-naast-de-poort als bij de 5433 // antwoordpoort vanmiddag (shaer-r4c). 5434 // 5435 // Merk op wat het NIET was: niet dat een guardian elders het niet kon 5436 // beantwoorden. Die weg werkt en levert een Offer af bij de externe guardian. 5437 // Er kwam alleen nooit iets aan om af te leveren. 5438 // 5439 // `approved` is de enige doorlaat, voor performApprovedFollow: zonder dat zou 5440 // een goedgekeurd verzoek opnieuw op de poort stuiten en voor eeuwig wachten. 5441 5427 5442 // Accept any of: a profile/actor URL, an @user@host handle (WebFinger), or a 5428 5443 // bare site domain (site.com) — for a single-actor site (Klonkt etc.) the root … … 5435 5450 else actorUrl = null; 5436 5451 if (!actorUrl) return { error: 'not_found' }; 5452 // NA het oplossen, want een kind volgt net zo goed met @naam@server of een 5453 // kaal domein. Zou de poort alleen naar de ruwe invoer kijken, dan is elke 5454 // handle een sluiproute -- en dat is precies de fout die we hier repareren, 5455 // een maat kleiner. 5456 if (!approved) { 5457 const held = await gateOutgoingFollow(site, actorUrl); 5458 if (held) return { held: true, id: held.id, status: held.status || 'pending' }; 5459 } 5437 5460 // SIGNED, as this actor: an authorized-fetch instance refuses an anonymous 5438 5461 // GET of the actor doc, which made following from a boost silently fail … … 5759 5782 const site = db.prepare('SELECT * FROM sites WHERE slug = ?').get(pending.ward_slug); 5760 5783 if (!site) return { error: 'no_such_ward' }; 5761 const r = await followActor(site, pending.target_uri );5784 const r = await followActor(site, pending.target_uri, false, { approved: true }); 5762 5785 if (r && r.error) return { error: r.error }; 5763 5786 console.log('[AP] outgoing Follow approved', pending.ward_slug, '→', pending.target_uri);
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)