|
|
@@ -89,18 +89,6 @@ tijd stoppen goed te doen.
|
|
|
(P2-2 t/m P2-6, P2-8) — geen mechanisch patroon, dus geen goede
|
|
|
Haiku-fit.
|
|
|
|
|
|
-## Status: actief bij Bob (geen Claude-actie nodig, ter info)
|
|
|
-
|
|
|
-- **FavorietenAgenda 403-fout** — **Eigenaar: Bob — bezig.** Bob
|
|
|
- troubleshoot dit zelf. FlutterFlow-requests komen bij nginx binnen
|
|
|
- met een lege Cookie-header; zijn eigen browser/curl (via dezelfde
|
|
|
- Cloudflare-edge) sturen de sessie-cookie wél mee. Cloudflare Cache
|
|
|
- Rule voor `SSESS*` staat al goed (bypass, eerste regel).
|
|
|
- Werkhypothese: Cloudflare Bot Management behandelt FlutterFlow's
|
|
|
- server-side traffic anders op basis van IP-reputatie/
|
|
|
- TLS-fingerprint. Niet opnieuw diagnosticeren zonder navraag — check
|
|
|
- eerst of Bob al verder is.
|
|
|
-
|
|
|
## P0 — blokkeert livegang
|
|
|
|
|
|
**P0-6 · Eigenaar: Onbepaald (mechanisch: widgets verwijderen/verbergen
|
|
|
@@ -188,14 +176,56 @@ favorieten drawer-link + 3-tabblad-pagina, hartje op horeca-kaart +
|
|
|
- Lege-lijst empty-state op de favorietenpagina (nu kale/lege
|
|
|
Container als er nog geen favorieten zijn).
|
|
|
`lib/favorieten/favorieten_widget.dart`.
|
|
|
-- Bevestigen dat favorieten écht syncen via Drupal bij inloggen —
|
|
|
- hangt af van FavorietenAgenda-403 hierboven.
|
|
|
+- ~~Bevestigen dat favorieten écht syncen via Drupal bij inloggen~~ —
|
|
|
+ **root cause gevonden + gefixed (Claude, 2026-08-09), zie P1-18.**
|
|
|
+ De eerder aan Cloudflare Bot Management toegeschreven
|
|
|
+ "FavorietenAgenda 403-fout" (lege Cookie-header bij FlutterFlow-
|
|
|
+ requests) bleek gewoon het gevolg van de login-sessie die nooit
|
|
|
+ werd opgeslagen — niets met Cloudflare/IP-reputatie te maken. Live
|
|
|
+ bevestigd met testaccount `bobcity` op emulator: na de fix geeft
|
|
|
+ `flutterfavorietenagenda.json` **status 200 + geldige
|
|
|
+ `Cookie`/`X-CSRF-Token`-headers + echte data** i.p.v. de eerdere
|
|
|
+ lege/anonieme 403. Kan hiermee als afgerond beschouwd worden zodra
|
|
|
+ Bob dit ook zelf in de FavorietenAgenda-flow (niet alleen de
|
|
|
+ `kanweg`-testpagina) bevestigt.
|
|
|
|
|
|
**P0-5 · Eigenaar: Bob.** Drupal: anonieme leestoegang onderzoeken
|
|
|
voor browse-endpoints. Drupal-niveau, geen Claude-taak.
|
|
|
|
|
|
## P1 — snel na livegang
|
|
|
|
|
|
+**P1-18 · Eigenaar: Bob (1 conditie-edit in de builder — Claude vond
|
|
|
+het Actions-paneel voor deze knop niet, zie CLAUDE.md).** Login-knop
|
|
|
+(`login`-pagina, "Inloggen") crasht **altijd** stil na een druk erop —
|
|
|
+geen succes-/foutmelding, en (belangrijker) **de sessie werd nooit
|
|
|
+opgeslagen**, waardoor elke beveiligde pagina (favorieten, `kanweg`)
|
|
|
+zonder sessie-cookie draaide. Root cause (bevestigd via
|
|
|
+`flutter run`-log, 2026-08-09): `login_widget.dart:534` —
|
|
|
+`if (_model.resultDrupalLogin!) {` — behandelt het resultaat van de
|
|
|
+custom action `drupalLogin` (een JSON-map: `{success, sessid,
|
|
|
+session_name, token, uid, name, mail}`) alsof het een `bool` is. Dat
|
|
|
+crasht altijd met `type '_Map<String, dynamic>' is not a subtype of
|
|
|
+type 'bool'`, ongeacht of de credentials kloppen — dus ook de regels
|
|
|
+daarna (`FFAppState().userSessionid = ...`) draaiden nooit.
|
|
|
+**Functioneel al gefixed (Claude, Custom Code-editor):**
|
|
|
+`lib/custom_code/actions/drupal_login.dart` zet de sessievelden
|
|
|
+(`userSessionid`/`userSessionname`/`userToken`/`userName`/`userUid`/
|
|
|
+`userMail`) nu **zelf al in `FFAppState()`** vóórdat de crashende
|
|
|
+regel in de knop bereikt wordt — dat gebeurt dus altijd, ook al
|
|
|
+crasht de knop daarna nog steeds. Live bevestigd (emulator, testaccount
|
|
|
+`bobcity`): na inloggen + navigeren naar `kanweg` komt er nu een
|
|
|
+`Cookie`-header mee en status 200 i.p.v. de eerdere lege/403-request.
|
|
|
+**Resterend (cosmetisch, builder-only):** de If/Then-conditie ná de
|
|
|
+Custom Action-stap in de Inloggen-knop's Actions aanpassen van
|
|
|
+"resultDrupalLogin is true" naar een check op het JSON-veld
|
|
|
+`$.success` (zelfde recept als het bekende
|
|
|
+"Is Set and Not Empty tegen valueOrDefault"-patroon hieronder: bind
|
|
|
+tegen de rauwe `getJsonField($.success)`-expressie, operator "Is
|
|
|
+Set"/"== true"), zodat de succes-/foutmelding weer verschijnt. Claude
|
|
|
+kon het Actions-paneel voor deze knop niet vinden ondanks uitgebreid
|
|
|
+zoeken (widget-tree, canvas, rechtsklik-context-menu's, Cmd+K) — zie
|
|
|
+CLAUDE.md voor wat wel/niet geprobeerd is.
|
|
|
+
|
|
|
**P1-1 · Eigenaar: Bob (mechanisch, ~10 sec per stuk) — audit
|
|
|
compleet, wachtend op Bob.** Loading/foutafhandeling-patroon uitrollen
|
|
|
naar overige lijst-/detailpagina's. Referentiepatroon bevestigd
|
|
|
@@ -691,5 +721,6 @@ gemeente-/provincienaam (favoriete plaats maken/markeren) — losgemaakt
|
|
|
van P0-3 (2026-08-05, Bob: te veel voor de eerste release). Naam wordt
|
|
|
inmiddels al getoond op de meeste pagina's via `HeaderButtonsComponent`
|
|
|
(zie P0-3); dit punt is puur de hartje-tap-functionaliteit erbovenop.
|
|
|
-Hangt af van de `FavorietenAgenda`-403-fix (zie "Status: actief bij
|
|
|
-Bob" bovenaan dit bestand) — niet oppakken vóórdat die opgelost is.
|
|
|
+Hing af van de `FavorietenAgenda`-403-fout — die bleek onderdeel van
|
|
|
+de login-sessie-bug, root cause gevonden + functioneel gefixed
|
|
|
+(2026-08-09, zie P0-4/P1-18). Kan nu opgepakt worden.
|