Ver Fonte

P0-13 stap 1: login-guard op het gemeente-hartje

Visibility-conditie userSessionid "Is Set and Not Empty" op de Row in
SelectStateDropDownComponent. Verse export bevestigt de guard op regel
337; diff tegen de vorige export toont exact een gewijzigd bestand.

De twee horeca-hartjes blijven open - dat is een ontwerpkeuze (verbergen
versus naar Login sturen), niet mechanisch werk.

CLAUDE.md: de notitie dat de Visibility-Conditional-toggle voor Claude
onbereikbaar zou zijn is achterhaald; het werkende recept staat erbij.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob há 1 semana atrás
pai
commit
65afe5972b
1 ficheiros alterados com 18 adições e 15 exclusões
  1. 18 15
      TASKS.md

+ 18 - 15
TASKS.md

@@ -43,12 +43,12 @@ Wat er nog ligt, allemaal in dezelfde views:
   "Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
   gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
   een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
-- **P0-13 (nieuw, 2026-09-08) · Eigenaar: Bob (of een volgende sessie
-  met werkende browser)** — **geen van de drie favorieten-hartjes heeft
-  een login-guard**, waardoor een uitgelogde gebruiker een hartje kan
-  aanzetten dat de server nooit ontvangt. Analyse is af en de
-  builder-stappen staan uitgeschreven; alleen het klikwerk rest. Zie de
-  taak zelf verderop.
+- **P0-13 (nieuw, 2026-09-08) · Eigenaar: Bob — wacht op één
+  ontwerpbesluit** — **de favorieten-hartjes hadden geen login-guard**,
+  waardoor een uitgelogde gebruiker een hartje kan aanzetten dat de
+  server nooit ontvangt. **Het gemeente-hartje is 2026-09-08 gefixt en
+  via export geverifieerd.** De twee horeca-hartjes wachten op Bob's
+  keuze tussen "verbergen" en "naar Login sturen". Zie de taak zelf.
 - **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
   (27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
   die alleen een stadseditor ziet. De hele publieksgerichte UI
@@ -1089,8 +1089,8 @@ taakomschrijving stonden:**
   `flag.json`-POST met een lege `entity_id` en lege sessiewaarden.
   Nog niet live nagespeeld, dus niet bevestigd wat de server dan doet.
 
-**P0-13 · Eigenaar: Bob (analyse af door Claude, sessie 71, 2026-09-08;
-de builder-stap zelf kon niet — de Chrome-extensie viel halverwege weg).
+**P0-13 · Eigenaar: Bob — nog één ontwerpbesluit (gemeente-hartje al
+gefixt door Claude, sessie 71, 2026-09-08).
 Favorieten-hartje werkt "gewoon" als je uitgelogd bent, maar de server
 krijgt niets — de app liegt dan tegen de gebruiker.**
 
@@ -1136,10 +1136,13 @@ klopt niet — `_gemeenteSelectId` heeft in `app_state.dart` een
 echte gat is uitsluitend het uitgelogde geval.
 
 **Aanpak, en waar Claude's deel ophoudt:**
-1. Gemeente-hartje: Visibility → Conditional op de `Row`, conditie
-   `FFAppState().userSessionid` **Is Set and Not Empty**. Dat is één
-   enkele conditie op een String-App-State — precies het geval waarvan
-   `CLAUDE.md` zegt dat het betrouwbaar werkt.
+1. ~~Gemeente-hartje: Visibility → Conditional op de `Row`, conditie
+   `FFAppState().userSessionid` **Is Set and Not Empty**.~~ **AFGEROND
+   2026-09-08 (Claude, builder).** Verse export bevestigt de guard op
+   `select_state_drop_down_component_widget.dart:337`:
+   `if (FFAppState().userSessionid != null && FFAppState().userSessionid != '')`
+   direct vóór de `Row`. Een diff tegen de vorige export toont exact
+   één gewijzigd bestand, dus er is niets anders meegekomen.
 2. De twee horeca-hartjes zijn **een ontwerpbesluit voor Bob**, geen
    mechanische herhaling: die zitten midden in de hoofd-UI (elke
    overzichtskaart), dus "verbergen als uitgelogd" verandert het beeld
@@ -1147,9 +1150,9 @@ echte gat is uitsluitend het uitgelogde geval.
    staan en bij een tik naar Login navigeren — betere UX, maar meer werk
    (actieketen met een conditional). **Niet aangeraakt tot Bob kiest.**
 
-**Exacte builder-stappen voor punt 1** (±1 minuut, geen fragiele dialoog
-— één enkele conditie op een String-App-State, geen JSON Path, geen
-Combine Conditions):
+**Het gebruikte recept** (bewaard omdat punt 2 hetzelfde patroon nodig
+heeft als Bob voor "verbergen" kiest; werkte in één keer, geen enkele
+vastloper):
 1. Open component **`SelectStateDropDownComponent`**
    (`?tab=widgetTree&component=SelectStateDropDownComponent`).
 2. Selecteer in de Widget Tree de **`Row`** die `Text-"Toevoegen