Ga naar inhoud

Accountformulieren (achter login)

Doel & URL's

Formulieren waarmee ingelogde gebruikers hun eigen gegevens beheren. De afscherming zit niet op het formulier (requireLogin staat uit) maar op templateniveau:

  • template-account (/account/, /wachtwoord-wijzigen/) toont het formulier alleen bij is_user_logged_in(); anders verschijnt (met HTTP 200) de tekst "U moet ingelogd zijn om deze pagina te kunnen bekijken..".
  • template-account-pastor (/predikant-gegevens/) geeft iedere bezoeker zónder rol pastor — ook anoniem én ook andere ingelogde rollen — een harde HTTP 403 (wp_die); zie Predikant-gegevens.
Form Naam URL Template
18 Account bijwerken /account/ template-account
24 Predikant gegevens /predikant-gegevens/ template-account-pastor
25 Wachtwoord wijzigen /wachtwoord-wijzigen/ template-account

Opbouw

De accountpagina's tonen een sidebar met accountnavigatie (zie Accountnavigatie voor de exacte logica):

  • Waarheidsvriend digitaal (/uitgaven/) — alleen voor rol wv-subscriber
  • Mijn account (/account/) — rol wv-subscriber óf pastor
  • Predikant gegevens (/predikant-gegevens/) — alleen voor rol pastor
  • Wachtwoord wijzigen (/wachtwoord-wijzigen/) — alle ingelogden
  • Uitloggen — alle ingelogden

Daarnaast het formulier uit het ACF-veld content_form.

Formulier 18 — Account bijwerken

Verzendknop "Wijzigingen opslaan". Velden worden vooringevuld met de huidige profielgegevens (User Registration update-feed).

Velden:

Label Type Verplicht
Naam (voorvoegsel/voornaam/tussenvoegsel/achternaam) name ja
Adres (straat+nr, plaats, postcode) address ja
Telefoon phone ja
E-mailadres email ja

Confirmations: standaard: doorsturen naar /account/; daarnaast een message-confirmation "Uw account is bijgewerkt".

Notifications: geen.

Feeds: User Registration-feed #2 (type update): e-mail ← e-mailveld, voor-/ achternaam ← naamveld, displayname en rol blijven behouden; user meta profile_city/address/zipcode/phone + user_title/user_suffix worden bijgewerkt.

Formulier 24 — Predikant gegevens

Voor gebruikers met rol pastor: beheer van de gegevens die in de predikantendatabase en de exportlijsten verschijnen. Verzendknop "Versturen".

Velden:

Label Type Verplicht Bijzonderheden
Naam name nee zichtbaarheid administrative (niet op het scherm)
Adres address nee
Telefoon phone nee
Mobiele telefoon phone nee
E-mailadres email nee
Geboortedatum date nee formaat dd-mm-jjjj
Functie select nee Gemeentepredikant / Predikant met bijzondere opdracht / Emerituspredikant
Gemeenten list nee kolommen Van / Tot / Plaatsnaam; rijen toevoegen via (+)
Downloadlijsten checkbox (dynamisch veld 900) nee "Ik wil niet verschijnen in downloadlijsten" — door het thema toegevoegd bij render

Custom gedrag (thema):

  • Validatie van het list-veld Gemeenten: plaatsnaam verplicht per rij, datums in d-m-Y; rijen worden bij opslaan gesorteerd op Van-datum en profile_most_recent_from_date wordt berekend.
  • De keuze bij "Downloadlijsten" wordt opgeslagen als user meta profile_export_optin ('0' = niet tonen in exports, '1' = wel tonen).

Confirmation: bericht "Uw wijzigingen zijn opgeslagen."

Notifications: beheerdersmelding op event gfur_user_updatedinfo@gereformeerdebond.nl, onderwerp "Predikant gegevens bijgewerkt".

Feeds: User Registration-feed #7 (update): rol behouden; user meta profile_pastor_* en profile_history(_from/_to) uit het Gemeenten-veld.

Formulier 25 — Wachtwoord wijzigen

Velden: één veld "Wachtwoord wijzigen?" (password, met bevestigingsinput).

Confirmation: bericht "Uw wachtwoord is succesvol gewijzigd. Klik hier om in te loggen met uw nieuwe wachtwoord."

Notifications: beheerdersmelding → {admin_email}.

Feeds: User Registration-feed #9 (update): alleen het wachtwoord; displayname en rol behouden.

Gedrag & rollen

Rol /account/ /predikant-gegevens/ /wachtwoord-wijzigen/
Anoniem melding "U moet ingelogd zijn …" (HTTP 200) HTTP 403 melding "U moet ingelogd zijn …" (HTTP 200)
Ingelogd zonder rol pastor formulier 18, vooringevuld HTTP 403 formulier 25
wv-subscriber + sidebarlink "Uitgaven" HTTP 403 formulier 25
pastor + sidebarlink "Predikant gegevens" formulier 24 formulier 25

Acceptatiecriteria

  • Als anonieme bezoeker op /account/ of /wachtwoord-wijzigen/ kom, dan zie ik geen formulier maar de melding dat ik ingelogd moet zijn (HTTP 200); op /predikant-gegevens/ krijg ik HTTP 403.
  • Als ingelogde gebruiker op /account/ kom, dan is het formulier vooringevuld met mijn huidige naam, adres, telefoon en e-mailadres.
  • Als ingelogde gebruiker op /account/ mijn plaats wijzig en opsla, dan zie ik de bevestiging en zijn de gewijzigde gegevens bij een volgend bezoek vooringevuld (user meta bijgewerkt).
  • Als ingelogde gebruiker met rol wv-subscriber op /account/, dan bevat de sidebar de link "Waarheidsvriend digitaal"; als gebruiker zonder die rol niet.
  • Als ingelogde gebruiker met rol pastor op /account/, dan bevat de sidebar de link "Predikant gegevens"; als gebruiker zonder die rol niet.
  • Als pastor op /predikant-gegevens/ een rij aan het Gemeenten-veld toevoeg zonder plaatsnaam, dan volgt een validatiefout; met een ongeldige datum (niet d-m-Y) eveneens.
  • Als pastor meerdere Gemeenten-rijen invoer, dan staan ze na opslaan gesorteerd op Van-datum.
  • Als pastor "Ik wil niet verschijnen in downloadlijsten" aanvink en opsla, dan verschijn ik niet meer in de predikanten-export (user meta profile_export_optin = 0).
  • Als pastor het formulier opsla, dan verschijnt "Uw wijzigingen zijn opgeslagen." en ontvangt de beheerder de melding "Predikant gegevens bijgewerkt".
  • Als ingelogde gebruiker op /wachtwoord-wijzigen/ een nieuw wachtwoord opsla, dan verschijnt de bevestiging en kan ik met het nieuwe wachtwoord opnieuw inloggen (en niet meer met het oude).
  • Als ingelogde gebruiker op de accountpagina's op "Uitloggen" klik, dan word ik uitgelogd en tonen de accountpagina's daarna weer de loginmelding.

Bekende afwijkingen

NIET nabouwen — wel vermelden in het testrapport

  • Formulier 18 is óók geconfigureerd als CGC-paywall-formulier (options_CGC_paywall_form_id = 18) en staat op een concept-pagina "Verzoek voor terugbetaling extra gift" — beide zijn misconfiguraties; formulier 18 hoort alleen op /account/.
  • De confirmation van formulier 25 zegt "Klik hier om in te loggen" terwijl de gebruiker al ingelogd is; de linktekst bevat geen daadwerkelijke link in de geïnventariseerde configuratie.
  • De afscherming zit op templateniveau, niet op het formulier: een directe POST naar de GF-submission-endpoints van formulieren 18/24/25 is technisch mogelijk zonder login (de update-feed werkt dan overigens niet zonder ingelogde gebruiker). Bij de rebuild expliciet server-side afdwingen dat deze formulieren alleen door de ingelogde eigenaar te versturen zijn.