Uitgaven (Waarheidsvriend digitaal)¶
Doel & URL('s)¶
Digitaal lezen van de papieren uitgaven van De Waarheidsvriend — het kernvoordeel van het (digitale) abonnement. Beide schermen zijn exclusief voor ingelogde gebruikers met rol wv-subscriber.
| Scherm | URL |
|---|---|
| Uitgavenarchief | /uitgaven/ (+ /uitgaven/page/{n}/) |
| Uitgave lezen (flipbook) | /uitgaven/{slug}/ (bijv. /uitgaven/de-waarheidsvriend-2026-11/) |
Post type issue, ±205 gepubliceerde uitgaven; titelpatroon "De Waarheidsvriend {jaar} {nummer}". Menu-item "Waarheidsvriend digitaal" (in het GB- én WV-menu) verwijst naar /uitgaven/.
Opbouw¶
Uitgavenarchief /uitgaven/¶
Layout met sidebar links; alleen zichtbaar voor abonnees (zie Gedrag):
- Kaartengrid — 10 uitgaven per pagina, nieuwste eerst. Per kaart:
- cover (
issue_cover, formaat 328×464; fallback uit optiefallback_image), - uitgavenummer (
issue_number), jaar, dag + maand (NL), - hover-overlay met knop "Bekijk uitgave"; de link opent de uitgave in een nieuw tabblad.
- cover (
- Paginering (paginanummers zonder vorige/volgende).
- Sidebar:
- Accountblok — "Ingelogd: {voornaam} {achternaam}" met links: "Waarheidsvriend digitaal" →
/uitgaven(alleen abonnee), "Mijn account" →/account(abonnee of predikant), "Predikant gegevens" →/predikant-gegevens(alleen predikant), "Wachtwoord wijzigen" →/wachtwoord-wijzigen, "Uitloggen" (naar/inloggen). - Maandarchief — maandlinks (bijv. "maart 2026" →
/2026/03/?post_type=issue).
- Accountblok — "Ingelogd: {voornaam} {achternaam}" met links: "Waarheidsvriend digitaal" →
- Site-brede schil (nieuwsbriefsectie + footer).
Uitgave lezen /uitgaven/{slug}/¶
Kale pagina zonder header/footer: een fullscreen Real3D-flipbook (bladerbare PDF-viewer, WebGL) over de hele pagina, gevoed door het PDF-bestand van de uitgave (issue_file, geüpload naar uploads/issues/).
Databronnen¶
| Veld/optie | Type | Gebruik |
|---|---|---|
issue_number |
text (verplicht) | nummer op de kaart |
issue_cover |
image (verplicht) | cover op kaart en homepage-blok |
issue_file |
file (verplicht; upload gedwongen naar uploads/issues/) |
PDF voor flipbook en app |
Blogoptie posts_per_page = 10 |
— | paginagrootte archief |
Optie fallback_image |
image | cover-fallback |
Gedrag & rollen¶
Toegangsregel (huidig gedrag)¶
- Iedereen zonder rol
wv-subscriber— anoniem, ingelogd zonder rol,pastor, én admin-rollen — krijgt op/uitgaven/en/uitgaven/{slug}/een HTTP 403 met de kale WordPress-foutpagina "U heeft geen toestemming om deze pagina te bekijken." (De nette "log eerst in"-teksten in de views zijn dode code; ze worden nooit bereikt.) - Ingelogd mét rol
wv-subscriber: HTTP 200; archief en flipbook volledig functioneel. - Login-redirect: na inloggen (via
/inloggen/of wp-login) wordt een gebruiker met rolwv-subscriberdoorgestuurd naar/uitgaven/; andere rollen naar/account/.
Bescherming van het PDF-bestand (webserver)¶
…/uploads/issues/*(zowel het Bedrock-pad/app/uploads/issues/als het legacy-pad/wp-content/uploads/issues/) antwoordt 403 zonder WordPress-login-cookie; mét login-cookie wordt het bestand uitgeleverd (proxy naar Azure Blob, met Range-support en lange cache-headers).- De check is een aanwezigheidstest op de cookienaam (
wordpress_logged_in_*), geen validatie — de "harde" beveiliging zit dus op sessieniveau, niet op abonnementsniveau.
App/headless (ter referentie)¶
Voor de app bestaat een beschermde drukversie-flow: GET /gb-app/v1/issues/{id}/pdf-link (alleen wv-subscriber; 401/403 anders) levert een HMAC-ondertekende URL op met 5 minuten geldigheid; de uitleverings-endpoint valideert handtekening/vervaltijd/abonnement en streamt de PDF met Range/206-support. In REST (/wp/v2/issues, alleen geauthenticeerd) wordt issue_file verwijderd voor niet-abonnees (gb_locked: true). Details: zie Bestaand API-oppervlak.
Acceptatiecriteria¶
- Als anonieme bezoeker op
/uitgaven/dan HTTP 403 (huidig: kale WP-melding "U heeft geen toestemming om deze pagina te bekijken."). Rebuild-doel: een nette afschermpagina met uitleg + routes naar inloggen en abonneren in plaats van de kale 403 (functioneel: geen uitgave-inhoud zichtbaar voor niet-abonnees). - Als anonieme bezoeker op
/uitgaven/{slug}/dan idem: geen toegang, geen uitgave-inhoud. - Als ingelogde gebruiker zonder rol wv-subscriber (incl. pastor en admin) op
/uitgaven/of/uitgaven/{slug}/dan eveneens geen toegang. - Als ingelogde wv-subscriber op
/uitgaven/dan HTTP 200 met 10 uitgavekaarten (nieuwste eerst), elk met cover, uitgavenummer, jaar en dag+maand, en een knop/overlay "Bekijk uitgave" die in een nieuw tabblad opent. - Als ingelogde wv-subscriber op
/uitgaven/dan is er paginering en toont/uitgaven/page/2/de volgende 10 uitgaven. - Als ingelogde wv-subscriber op
/uitgaven/dan toont de sidebar "Ingelogd: {voornaam} {achternaam}" en de links Waarheidsvriend digitaal, Mijn account, Wachtwoord wijzigen en Uitloggen; een gebruiker die tevens predikant is ziet ook "Predikant gegevens". - Als ingelogde wv-subscriber op
/uitgaven/dan bevat de sidebar een maandarchief waarvan de links de uitgaven van die maand tonen. - Als ingelogde wv-subscriber op
/uitgaven/{slug}/dan rendert een fullscreen bladerbare weergave (flipbook) van de uitgave-PDF, zonder site-header/footer. - Als anonieme client een directe request doet naar een PDF onder
…/uploads/issues/…dan HTTP 403; met geldige login-sessie HTTP 200 (en Range-request → 206). - Als wv-subscriber inlogt via de loginpagina dan volgt een redirect naar
/uitgaven/. - Als ingelogde wv-subscriber via REST/app:
GET /gb-app/v1/issues/{id}/pdf-linklevert{url, expires_in}; de URL is na 5 minuten ongeldig (gb_app_link_expired); zonder abonnement 403 (gb_app_no_subscription).
Bekende afwijkingen (NIET nabouwen; wel vermelden in het testrapport)
- De kale WP-403-pagina voor niet-abonnees is een defect in beleving: de views bevatten onbereikbare "U moet ingelogd zijn…"-teksten met registratielink. In Next.js een echte afscherm-/wervingspagina bouwen; het testrapport vermeldt de huidige 403.
- De PDF-afscherming controleert alleen op het bestaan van een login-cookie, niet op de abonneerol; elke ingelogde gebruiker die de directe bestands-URL kent kan de PDF ophalen. In de rebuild abonnementsgebonden uitlevering gebruiken (zoals de app-flow met ondertekende URL's).
- Buiten de afgeschermde uitgaven bestaan publieke Real3D-flipbooks op
/?r3d={slug}(o.a./?r3d=de-waarheidsvriendmet een openbaar toegankelijke Waarheidsvriend-PDF uit 2021 buitenuploads/issues/, dus buiten de afscherming; ze staan in de sitemap). Saneer- of migratiebesluit nodig; niet zonder meer nabouwen. - Uitgaven staan in de Yoast-sitemap (
issue-sitemap.xml) terwijl ze achter de 403-gate zitten — zoekmachines krijgen URL's aangeboden die zij niet kunnen renderen.