Changeset 192fe28 in Klonkt


Ignore:
Timestamp:
08/18/2026 06:52:42 PM (3 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
8501ee8
Parents:
d85b66f
Message:

Toets waar de eigenaarspoort en de fanpoort elkaar raken

Robins approve_followers houdt een Follow vast in ap_pending_follows tot de
eigenaar op /connect ja zegt; pas dan komt hij in ap_followers. Onze fanpoort
leest ap_followers, dus een wachtend verzoek opent niets.

Dat klopt vandaag vanzelf -- geen van beide functies wist van de ander -- en
juist daarom staat het nu vast. Wie de poort ooit "soepeler" maakt door ook
wachtende verzoeken mee te tellen, geeft daarmee toegang aan iedereen die op
Volgen klikte, precies wat de eigenaarspoort moest voorkomen.

Co-Authored-By: Claude Opus 5 <claude@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/openwebauth.test.js

    rd85b66f r192fe28  
    171171});
    172172
     173test('een WACHTEND volgverzoek opent de fanpoort niet', () => {
     174  // Waar twee functies elkaar raken, en geen van beide dat wist.
     175  //
     176  // Met approve_followers aan (Robins eigenaarspoort) wordt een Follow niet meer
     177  // automatisch geaccepteerd: hij wacht in ap_pending_follows tot de eigenaar op
     178  // /connect ja zegt, en pas dan komt hij in ap_followers. Onze fanpoort leest
     179  // ap_followers, dus een verzoek dat nog wacht hoort NIETS te openen.
     180  //
     181  // Dat klopt vandaag vanzelf, en juist daarom staat het hier vast: wie de poort
     182  // ooit "soepeler" maakt door ook wachtende verzoeken mee te tellen, geeft
     183  // daarmee iedereen toegang die op Volgen heeft geklikt -- precies wat de
     184  // eigenaarspoort moest voorkomen.
     185  const WACHTEND = 'https://elders.example/users/wachtend';
     186  db.prepare("INSERT INTO ap_pending_follows (id, ward_slug, follower_uri, quorum, status) VALUES (?,?,?,'owner','pending')")
     187    .run('pf-1', 'kid', WACHTEND);
     188  assert.equal(OWA.isFollowerOf('kid', WACHTEND), false, 'wachten is niet volgen');
     189});
     190
    173191test('een sessie zonder bewijs levert geen actor', () => {
    174192  assert.equal(OWA.guestActor(null), null);
Note: See TracChangeset for help on using the changeset viewer.