test(instellingen): de tak die een geheim tegenhoudt was onbeproefd + voorbeeldservers op ons eigen domein #719

Merged
brenno merged 2 commits from fix/secret-field-testbaar-631 into main 2026-07-23 10:32:52 +00:00
Owner

Twee kleine vervolgen op #631, dat inmiddels via #716 op main staat.

1. De weigeringstak was onbeproefd. SettingsSecretField sluit het veld af zonder sleutelhanger, met de reden eronder, in plaats van stilzwijgend iets te bewaren wat elk script op de pagina kan meelezen. Dat is het veiligheidsgedrag van dat veld, en het draaide in geen enkele test: de tak hangt aan kIsWeb, en dat is onder flutter test altijd onwaar. Er was ook helemaal geen test voor settings_text_field.dart.

Het veld draagt nu dezelfde canStore-overschrijving die SecretStore al had. Zes tests erbij; if (true) in plaats van de controle laat de weigeringstest rood worden.

2. De voorbeeldservers wijzen naar ons eigen domein. cloud.example.com, git.example.org, dav.example.com, minio.voorbeeld.nl en cloud.voorbeeld.nl zijn nu *.librekat.nl, in dezelfde vorm als het bestaande cveapi.librekat.nl. Niet meegenomen: example.org in het identiteitsveld onder Beveiliging (dat is het domein van de gebruiker, niet van ons).

make check groen: 5893 tests.

Twee kleine vervolgen op #631, dat inmiddels via #716 op main staat. **1. De weigeringstak was onbeproefd.** `SettingsSecretField` sluit het veld af zonder sleutelhanger, met de reden eronder, in plaats van stilzwijgend iets te bewaren wat elk script op de pagina kan meelezen. Dat is het veiligheidsgedrag van dat veld, en het draaide in geen enkele test: de tak hangt aan `kIsWeb`, en dat is onder `flutter test` altijd onwaar. Er was ook helemaal geen test voor `settings_text_field.dart`. Het veld draagt nu dezelfde `canStore`-overschrijving die `SecretStore` al had. Zes tests erbij; `if (true)` in plaats van de controle laat de weigeringstest rood worden. **2. De voorbeeldservers wijzen naar ons eigen domein.** `cloud.example.com`, `git.example.org`, `dav.example.com`, `minio.voorbeeld.nl` en `cloud.voorbeeld.nl` zijn nu `*.librekat.nl`, in dezelfde vorm als het bestaande `cveapi.librekat.nl`. Niet meegenomen: `example.org` in het identiteitsveld onder Beveiliging (dat is het domein van de gebruiker, niet van ons). `make check` groen: 5893 tests.
`SettingsSecretField` sluit het invulveld af wanneer er geen sleutelhanger
is, met de reden eronder, in plaats van stilzwijgend iets te bewaren wat
elk script op de pagina kan meelezen. Dat is het veiligheidsgedrag van dat
veld — en juist die tak draaide in geen enkele test.

De reden is structureel: de tak hangt aan `kIsWeb`, en dat is onder
`flutter test` altijd onwaar. Er was bovendien helemaal geen test voor
`settings_text_field.dart`, dus het bestand leunde volledig op de
paneeltests die er langsheen komen.

Het veld draagt nu dezelfde `canStore`-overschrijving die `SecretStore`
al had, om precies dezelfde reden. Zes tests erbij; vervang je de controle
door `if (true)`, dan wordt de weigeringstest rood — de test bewijst dus
werkelijk iets.

Volgt op de opsplitsing in #631, die het veld uit de gedeelde part-scope
haalde.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De hints in de opslagpanelen noemden `cloud.example.com`,
`git.example.org`, `dav.example.com`, `minio.voorbeeld.nl` en
`cloud.voorbeeld.nl`. De `.nl`-varianten zijn domeinen die iemand anders
werkelijk kan bezitten; de gereserveerde varianten zijn niemands.

Het zijn nu `cloud.librekat.nl`, `dav.librekat.nl`, `git.librekat.nl` en
`minio.librekat.nl` — ons eigen domein, in dezelfde vorm als het
bestaande `cveapi.librekat.nl`. Ook de commentaren die diezelfde
voorbeelden aanhalen, zodat de code consistent leest.

Bewust niet meegenomen: `example.org` in het identiteitsveld onder
Beveiliging. Dat staat er als het domein van de *gebruiker*, niet als een
server van ons — daar zou ons domein mensen juist het verkeerde laten
intypen. En niet `ocideck.librekat.nl`: dat is de webapp, en in een veld
met het label "Server-URL" zou dat lezen als een adres waar je je
bestandsopslag aan kunt hangen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit f55ee4c321 into main 2026-07-23 10:32:52 +00:00
brenno deleted branch fix/secret-field-testbaar-631 2026-07-23 10:32:53 +00:00
Sign in to join this conversation.
No description provided.