Het slot afmaken: posten tegenhouden en grijzen wat dicht is
Robin keek naar zijn verhuisde instance en zei: alles is nog functioneel. Klopt, en
er zaten drie fouten in wat ik gisteren bouwde.
EEN: movedLock stond niet in de default-export, terwijl de routes hem via die weg
aanroepen. ActivityPubService.movedLock was dus geen functie, en elke route die hem
raakte gooide een 500. Daarom zag Robin ook geen banner op Connect: die pagina
strandde voordat hij hem kon tonen. Twee bestaande tests vielen hierdoor om zodra
ik de poort in de aanmaakroute zette, en dat was maar goed ook.
TWEE: de poort zat op de BEZORGING en niet op het MAKEN. deliverCreate weigerde,
maar de post werd daarvoor al opgeslagen. Je kon dus gewoon schrijven en publiceren;
het federeerde alleen niet. Dan lijkt het gelukt, staat het er, en sterft het met
het domein: precies de halve toestand die dit slot moest voorkomen, en die ik
vandaag drie keer bij anderen heb aangewezen.
DRIE: de UI wist van niets. Alleen connect.ejs en de homepage kenden movedTo; de
posteditor, de like- en boostknoppen en het reactieveld stonden er gewoon. Voor een
gebruiker ziet dat eruit als een werkende site.
Changed files:
src/services/ActivityPubService.js
- movedLock in de default-export (de oorzaak van de 500's)
src/routes/posts.js
- /posts/create weigert met 409 op een verhuisd account, VOOR de post bestaat
- /posts/:slug/save weigert alleen het alsnog PUBLICEREN van een concept;
een bestaande post bewerken mag, daar wil je "ik ben verhuisd naar" in kunnen
zetten en die URI bestaat al
src/middleware/site.js
- res.locals.movedTo, zodat elke view kan grijzen wat toch geweigerd wordt.
Zelfde plek en zelfde reden als mayReply erboven
src/views/partials/tl-item.ejs
- like, boost en reageren krijgen disabled; blokkeren blijft klikbaar, dat is
een veiligheidsklep net als rapporteren
src/views/pages/news.ejs
- banner bovenaan plus de grijze staat. Een uitleg boven de lijst en niet een
tooltip per knop, want een tooltip op een disabled knop is onzichtbaar
test/moved-lockdown.test.js
- 12 en 13: de aanmaakroute strandt op 409, en een gewoon account niet
remarks: 951 groen in UTC en Europe/Amsterdam. De Krant in beide standen gerenderd:
banner alleen als er verhuisd is, geen onvertaalde sleutels. Onderweg viel mijn
eigen testopzet twee keer om op ontbrekende locals (timeline, thumb); dat was de
test.
Les voor mezelf: ik had dit gisteren "af" genoemd terwijl de enige controle een
grep op de uitgerolde bestanden was. Dat de code ergens staat is niet hetzelfde als
dat hij draait.
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>