|
|
@@ -1046,6 +1046,20 @@ with a `BOOTSTRAP_ADMIN` audit row.
|
|
|
unchanged. *New sprint* stays in the header as the one
|
|
|
quick-action admins reach for from any page.
|
|
|
|
|
|
+- [x] **R01-N02 / R01-N31 — Runtime panel on `/` is now admin-only**
|
|
|
+ (`7fd849b`). `views/home.twig`'s "Runtime" `<details>` block was
|
|
|
+ previously rendered for anonymous visitors as well as admins,
|
|
|
+ leaking `PHP_VERSION`, `APP_ENV`, the SQLite file path, the schema
|
|
|
+ version, and the OIDC / local-admin enablement flags — useful
|
|
|
+ reconnaissance for anyone scanning the public homepage. The twig
|
|
|
+ guard tightened from `currentUser is null or currentUser.isAdmin`
|
|
|
+ to `currentUser is not null and currentUser.isAdmin`. Same edit
|
|
|
+ removes the in-page `/healthz` hint (R01-N31); the route itself
|
|
|
+ stays public for liveness probes. New
|
|
|
+ `TwigViewTest::testHomeForAnonymousUserHidesRuntimePanel` locks
|
|
|
+ the behaviour in. Tests: 150 / 430 (was 149 / 424). First fix
|
|
|
+ from `doc/REVIEW_01.md`.
|
|
|
+
|
|
|
- [x] **New sprint form: drop weeks input + task list row hover**
|
|
|
(`3728106`). The `/sprints/new` form no longer collects an
|
|
|
`n_weeks` value — the week count is derived from `start_date` /
|
|
|
@@ -1114,7 +1128,7 @@ for f in $(git ls-files '*.php'); do php -l "$f" | tail -1 | sed "s|^|$f: |"; do
|
|
|
Run the test suite:
|
|
|
```bash
|
|
|
vendor/bin/phpunit
|
|
|
-# → OK (149 tests, 424 assertions)
|
|
|
+# → OK (150 tests, 430 assertions)
|
|
|
```
|
|
|
|
|
|
The Phase 20 parser tests need `ext-dom`, `ext-zip`, `ext-xmlreader`,
|
|
|
@@ -1161,6 +1175,9 @@ before acting — nothing here is load-bearing once it grows stale.
|
|
|
## 13. Git history (as of this writing)
|
|
|
|
|
|
```
|
|
|
+7fd849b Fix R01-N02 / R01-N31: gate runtime panel on home page to admins
|
|
|
+912ef9b doc/REVIEW_01.md: initial security + fishy-pattern audit
|
|
|
+756650a SPEC.md: note new-sprint form weeks-drop + task list row hover
|
|
|
3728106 New sprint form: drop weeks input + task list row hover
|
|
|
fe78f45 Header: move Import link into the admin dropdown menu
|
|
|
8e8b8fd Sprint settings: secured Delete sprint action
|