Uitgaven-toegang (afscherming)¶
Doel & URL('s)¶
Deze pagina beschrijft alleen de toegangsregels rond de digitale uitgaven van De Waarheidsvriend. De inhoud en opbouw van het uitgavenarchief en de flipbook-weergave staan in de sectie De Waarheidsvriend (uitgaven/archief en uitgave-detail).
- URL's:
/uitgaven/(archief, post typeissue) en/uitgaven/{slug}/(single uitgave, Real3D-flipbook met de PDF uit ACF-veldissue_file)
Toegangsregels¶
| Route/bron | Regel | Buitenstaander krijgt |
|---|---|---|
/uitgaven/ |
rol wv-subscriber vereist (wp_die in controller) |
HTTP 403 "U heeft geen toestemming om deze pagina te bekijken." |
/uitgaven/{slug}/ |
idem | HTTP 403 |
/wp-content/uploads/issues/* (PDF's, alleen prod-nginx) |
request moet een wordpress_logged_in_*-cookie hebben |
HTTP 403 |
REST wp/v2/issues |
ingelogd vereist (401); veld gb_locked: true + acf.issue_file verwijderd voor niet-abonnees |
401 / uitgeklede respons |
REST gb-app/v1/issues/{id}/pdf-link |
ingelogd + rol wv-subscriber |
401 / 403 |
Kernpunten:
- De check is zuiver op rol
wv-subscriber— ook ingelogde niet-abonnees, predikanten en administrators zonder die rol krijgen 403. - Na inloggen wordt een
wv-subscriberautomatisch naar/uitgaven/doorgestuurd (zie Inloggen). - Het accountnavigatie-item "Waarheidsvriend digitaal" (→
/uitgaven) is alleen zichtbaar voorwv-subscriber. - Het "Lees de laatste uitgave"-blok op de homepage linkt voor anonieme
bezoekers naar
/inloggen/in plaats van naar de uitgave. - De nginx-PDF-bescherming controleert alleen op aanwezigheid van een
login-cookie, niet op de abonnee-rol: elke ingelogde gebruiker die een
directe PDF-URL kent kan het bestand ophalen. De beschermde app-route
(
pdf-link, zie App-authenticatie) checkt wél op de rol. - Rolverlies via de abonnee-import werkt direct door: zonder rol geldt onmiddellijk het 403-gedrag (geen sessie-cache).
Databronnen¶
| Bron | Detail |
|---|---|
| Post type | issue, archief-slug uitgaven; ACF issue_file (PDF), issue_cover, nummer/jaar/maand/dag |
| Controllers | Archive (trait Issue\Overview), SingleIssue (trait Issue\Single) — beide met rol-check + wp_die(403) |
| nginx (prod) | location ^~ /wp-content/uploads/issues/ → 403 zonder login-cookie |
| mu-plugins | gb-app-auth (gb_locked), gb-app-pdf (beschermde drukversie-link) |
Acceptatiecriteria¶
- Als anoniem
/uitgaven/opvraag, dan krijg ik HTTP 403. - Als anoniem een uitgave-detail-URL (
/uitgaven/{slug}/) opvraag, dan krijg ik HTTP 403. - Als subscriber (zonder WV-abonnement)
/uitgaven/opvraag, dan krijg ik HTTP 403. - Als pastor (zonder WV-abonnement)
/uitgaven/opvraag, dan krijg ik HTTP 403. - Als administrator zonder rol
wv-subscriber/uitgaven/opvraag, dan krijg ik HTTP 403 (huidig gedrag). - Als wv-subscriber
/uitgaven/open, dan zie ik het uitgavenarchief (verdere criteria: zie de WV-sectie). - Als wv-subscriber een uitgave open, dan laadt de flipbook-viewer fullscreen met de PDF van die uitgave.
- Als anoniem op productie een directe PDF-URL onder
/wp-content/uploads/issues/opvraag, dan krijg ik HTTP 403. - Als anoniem
wp/v2/issuesopvraag, dan krijg ik 401; als ingelogde niet-abonnee bevat de responsgb_locked: trueen geenissue_file; als wv-subscribergb_locked: falsemétissue_file. - Als wv-subscriber die de rol verliest (importrun) daarna
/uitgaven/opvraag, dan krijg ik HTTP 403.
Bekende afwijkingen¶
Niet nabouwen in Next.js, wel vermelden in het testrapport
- PDF-cookiecheck te ruim: de prod-nginx-regel voor
/uploads/issues/*eist alleen een login-cookie, geen abonnee-rol. In de rebuild moet uitlevering rolgebonden zijn (zoals de beschermde app-route al doet). - Flipbooks buiten de afscherming: er bestaan publieke
Real3D-flipbooks op
/?r3d={slug}waarvan er één een openbaar toegankelijke Waarheidsvriend-PDF buiten/uploads/issues/serveert. Niet overnemen zonder expliciet besluit (mogelijk bedoelde gratis proefuitgave); zie bekende afwijkingen, D2. - De "U moet ingelogd zijn…"-fallbacks in de issue-views zijn dode code (controller geeft altijd eerst 403).