|
@@ -1541,42 +1541,45 @@ leek overbodige scope-uitbreiding.)*
|
|
|
uit (genereert `context.goNamed(...)` i.p.v. `pushNamed`, dus geen
|
|
uit (genereert `context.goNamed(...)` i.p.v. `pushNamed`, dus geen
|
|
|
terugknop-pad naar de net-verlaten sessie). **Nog open, zelfde
|
|
terugknop-pad naar de net-verlaten sessie). **Nog open, zelfde
|
|
|
tab:** geen gebruikersnaam zichtbaar (zie UX-gat hierboven),
|
|
tab:** geen gebruikersnaam zichtbaar (zie UX-gat hierboven),
|
|
|
- "Wachtwoord wijzigen" en "Account verwijderen" (zie Bob's
|
|
|
|
|
- beslissing 3 hieronder — account verwijderen heeft mogelijk
|
|
|
|
|
- AVG-implicaties aan Drupal-kant en is een App-Store-vereiste, zie
|
|
|
|
|
- daar) — deze zijn niet meegenomen, eigen vervolgtaak.
|
|
|
|
|
- **Account verwijderen, Drupal-kant afgerond en live getest
|
|
|
|
|
- (2026-08-24, Bob + Claude samen — devbob).** Bob wil geen volledige
|
|
|
|
|
- in-app-flow bouwen; gekozen aanpak: account direct blokkeren
|
|
|
|
|
- (`status=0`, kan niet meer inloggen) + na 30 dagen automatisch hard
|
|
|
|
|
- verwijderen via cron, i.p.v. direct verwijderen. Twee ingangen, beide
|
|
|
|
|
- roepen dezelfde kernfunctie `_custom_account_delete_request()` aan
|
|
|
|
|
- (`custom.account_delete.inc`, nieuw bestand naast `custom.module`):
|
|
|
|
|
- - **Services-resource voor de app**: `POST
|
|
|
|
|
- .../nl/flutterdrup/accountdelete/delete_request.json` (sessie-
|
|
|
|
|
- Cookie + `X-CSRF-Token`-header verplicht — CSRF-token op te halen
|
|
|
|
|
- via `GET/POST .../nl/flutterdrup/user/token.json` met dezelfde
|
|
|
|
|
- sessie-cookie — géén args nodig, lege JSON-body `{}` volstaat).
|
|
|
|
|
- **Live succesvol getest via curl op devbob** (Bob heeft de
|
|
|
|
|
- test-rij daarna zelf weer uit `custom_account_delete_requests`
|
|
|
|
|
- verwijderd om zijn test-account niet na 30 dagen echt te laten
|
|
|
|
|
- verwijderen).
|
|
|
|
|
|
|
+ "Wachtwoord wijzigen" (zie Bob's beslissing 3 hieronder) — niet
|
|
|
|
|
+ meegenomen, eigen vervolgtaak.
|
|
|
|
|
+ **"Account verwijderen" volledig afgerond (2026-08-24, Bob + Claude
|
|
|
|
|
+ samen).** Bob wil geen volledige in-app-flow bouwen; gekozen aanpak:
|
|
|
|
|
+ account direct blokkeren (`status=0`, kan niet meer inloggen) + na
|
|
|
|
|
+ 30 dagen automatisch hard verwijderen via cron, i.p.v. direct
|
|
|
|
|
+ verwijderen. Twee Drupal-ingangen, beide roepen dezelfde kernfunctie
|
|
|
|
|
+ `_custom_account_delete_request()` aan (`custom.account_delete.inc`,
|
|
|
|
|
+ nieuw bestand naast `custom.module`):
|
|
|
|
|
+ - **Services-resource** (`POST
|
|
|
|
|
+ .../nl/flutterdrup/accountdelete/delete_request.json`, sessie-
|
|
|
|
|
+ Cookie + `X-CSRF-Token`-header verplicht — token op te halen via
|
|
|
|
|
+ `.../nl/flutterdrup/user/token.json` met dezelfde sessie-cookie,
|
|
|
|
|
+ géén args nodig, lege JSON-body `{}` volstaat). **Resource-naam is
|
|
|
|
|
+ `accountdelete`, niet `account`** — die eerste naam botste stil met
|
|
|
|
|
+ iets in Services (resource verscheen niet in de Bronnen-lijst, geen
|
|
|
|
|
+ foutmelding) tot 'm hernoemd werd. Live succesvol getest via curl
|
|
|
|
|
+ op devbob.
|
|
|
- **Webpagina** `/account-verwijderen` (Drupal `hook_menu()`,
|
|
- **Webpagina** `/account-verwijderen` (Drupal `hook_menu()`,
|
|
|
`confirm_form()`, alleen bereikbaar ingelogd — normale
|
|
`confirm_form()`, alleen bereikbaar ingelogd — normale
|
|
|
Drupal-login, geen app-token nodig, werkt dus ook los van de app)
|
|
Drupal-login, geen app-token nodig, werkt dus ook los van de app)
|
|
|
- — **nog niet getest**, alleen de Services-route is bevestigd.
|
|
|
|
|
|
|
+ — **live bevestigd werkend** door Bob.
|
|
|
|
|
+ - **FlutterFlow-app-kant**: nieuwe `ListTile` "Account verwijderen"
|
|
|
|
|
+ op de Gebruiker-tab (gedupliceerd van de Uitloggen-ListTile, zelfde
|
|
|
|
|
+ styling), On Tap → **Launch URL** (actie staat onder categorie
|
|
|
|
|
+ **"Share"**, niet "Navigation" — makkelijk te missen) →
|
|
|
|
|
+ `https://uitgaanskrant.com/nl/account-verwijderen`. Bevestigd via
|
|
|
|
|
+ verse export (`launchURL(...)` correct gegenereerd) + `flutter
|
|
|
|
|
+ analyze` + `flutter build apk` (geen nieuwe errors). Gecommit
|
|
|
|
|
+ `55b8dd6`. **Dekt Apple's App Store Review Guideline 5.1.1(v)**
|
|
|
|
|
+ (in-app-pad naar accountverwijdering, een link-out naar een simpele
|
|
|
|
|
+ webpagina volstaat volgens de richtlijn).
|
|
|
- Cron-sweep (`custom_account_delete_cron()`, via `custom_cronapi()`
|
|
- Cron-sweep (`custom_account_delete_cron()`, via `custom_cronapi()`
|
|
|
— Ultimate Cron, dagelijks) ruimt na 30 dagen automatisch op —
|
|
— Ultimate Cron, dagelijks) ruimt na 30 dagen automatisch op —
|
|
|
**nog niet live getest** (logisch, kost 30 dagen om te
|
|
**nog niet live getest** (logisch, kost 30 dagen om te
|
|
|
- reproduceren; code-review is het enige dat hier gebeurd is).
|
|
|
|
|
- - **Resource-naam is `accountdelete`, niet `account`** — die eerste
|
|
|
|
|
- naam botste stil met iets in Services (resource verscheen niet in
|
|
|
|
|
- de Bronnen-lijst, geen foutmelding) tot 'm hernoemd werd; hou hier
|
|
|
|
|
- rekening mee bij het bouwen van de app-knop hieronder.
|
|
|
|
|
- **Nog open:** de FlutterFlow-kant — één knop/ListTile op de
|
|
|
|
|
- Gebruiker-tab, On Tap → Launch URL →
|
|
|
|
|
- `https://uitgaanskrant.com/nl/account-verwijderen` (geen verdere
|
|
|
|
|
- in-app UI nodig, de webpagina regelt de rest). Nog niet gebouwd.
|
|
|
|
|
|
|
+ reproduceren; code-review + de handmatige call-flow zijn het enige
|
|
|
|
|
+ dat hier geverifieerd is). Enige resterende twijfel over deze hele
|
|
|
|
|
+ feature — verder geen actie nodig tenzij Bob over ~30 dagen wil
|
|
|
|
|
+ controleren dat de sweep echt draait.
|
|
|
- **Open vraag aan Bob (blokkeert de Drupal-sync van favorieten):**
|
|
- **Open vraag aan Bob (blokkeert de Drupal-sync van favorieten):**
|
|
|
bestaat er al een Drupal-endpoint om een favoriet (horeca of gemeente)
|
|
bestaat er al een Drupal-endpoint om een favoriet (horeca of gemeente)
|
|
|
toe te voegen/verwijderen voor een ingelogde gebruiker (bv.
|
|
toe te voegen/verwijderen voor een ingelogde gebruiker (bv.
|
|
@@ -1596,10 +1599,10 @@ leek overbodige scope-uitbreiding.)*
|
|
|
view).
|
|
view).
|
|
|
3. "Gebruiker"-tab = het oude P1-7-scope (wachtwoord wijzigen,
|
|
3. "Gebruiker"-tab = het oude P1-7-scope (wachtwoord wijzigen,
|
|
|
uitloggen, account verwijderen), nu als tab i.p.v. aparte pagina.
|
|
uitloggen, account verwijderen), nu als tab i.p.v. aparte pagina.
|
|
|
- Account verwijderen heeft mogelijk AVG-implicaties aan Drupal-kant.
|
|
|
|
|
- **Let op prioriteit:** Apple's App Store Review Guideline 5.1.1(v)
|
|
|
|
|
- eist in-app accountverwijdering voor een app met accountaanmaak —
|
|
|
|
|
- zonder dit scherm blokkeert een iOS-submissie, niet alleen P1.
|
|
|
|
|
|
|
+ **Account verwijderen afgerond 2026-08-24** (zie de uitgewerkte
|
|
|
|
|
+ notitie hierboven — blokkeert/vertraagt + cron, geen directe
|
|
|
|
|
+ verwijdering, dekt Apple's App Store Review Guideline 5.1.1(v)).
|
|
|
|
|
+ Alleen "Wachtwoord wijzigen" resteert nog van deze beslissing.
|
|
|
|
|
|
|
|
*(P1-12 afgerond 2026-08-10 avond — Bob, builder, opgelost via een
|
|
*(P1-12 afgerond 2026-08-10 avond — Bob, builder, opgelost via een
|
|
|
andere en betere route dan oorspronkelijk voorgesteld: i.p.v. een
|
|
andere en betere route dan oorspronkelijk voorgesteld: i.p.v. een
|