1
0
Files
breadcrumb-the-shire/pages
fs a038d0921b refactor(permissions-edit): migrate to actionEditContext (step 5)
Cluster-3a batch-replay of the roles-edit pilot (step 4). Same shape
as roles-edit with three domain-specific deltas:

* Integer ID instead of UUID — passed to the aggregator as
  (string) $id; the lookup itself stays integer-keyed via
  PermissionService::find().
* Extra authorize context key target_is_system — pre-computed from
  the loaded permission and threaded through both the CONTEXT and
  SUBMIT authorize calls.
* Domain renames (can_update_permission / can_delete_permission,
  permission_not_found scope-key, ABILITY_ADMIN_PERMISSIONS_*).

Confirms the cluster-3a pattern: forbiddenStrategy:'deny' produces
identical Guard::deny() semantics across actions; the helper file
stays 0-diff for the second cluster-3a action; PermissionService
warmup absence is preserved (cluster 3 does not need it).

Three drift decisions reproduced verbatim: notFoundFlashScopeKey,
t() consistency on Flash::success('Permission updated'), defensive
$canManageAllPermissions = $tenantScope['scope'] === 'all'.

ActionContextCsrfPairingContractTest now covers four callers
(departments, tenants, roles, permissions) and stays green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:49:04 +02:00
..
2026-03-04 15:56:58 +01:00