7c6bf992014b424715b9ca347b3c71bdf6ff6b5e
This app attached an Enforce*PageGrant middleware at runtime via a
RouteMatched listener, consulting its own private *_page_grants table to
decide whether the request could proceed.
Safe to remove because the middleware only ever NARROWED routes that
already carry a `permission:` gate. Three independent audits agreed on
that for all eleven apps: no route relied on it as its sole
authorization, so deleting it cannot widen access — the permission the
route already declares still decides.
Two cases were not simply narrowing, and both were handled first:
- unifi's guest-Wi-Fi card poll was `auth`-only and leaked the live guest
password to any signed-in account. Closed in 9cbc8e6 before this, so
this commit does not reopen it.
- google's middleware had NO permission-holder bypass, so it could deny a
legitimate google.manage holder. Deleting it restores their access.
What is deliberately NOT done here: the grant tables, models and the fold
in User::pageGrantedPermissions() all remain, so a grant row can still ADD
access. It can no longer 404 anybody. The fold goes last, together with
the characterisation tests that pin it.
Verified: pages in all four de-gated apps return 200, the affected suites
pass, and dashboard:doctor's advisories drop from 18 to 7.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDA3fQbsa3gaHCFoV1Q8Gg
Description
UniFi snap-in package for the Dashboard shell
Languages
PHP
100%