## Summary - add the RBAC role definition diff UX upgrade as the first concrete consumer of the shared diff presentation foundation - refine managed tenant onboarding draft routing, CTA labeling, and cancellation redirect behavior - tighten related Filament and diff rendering regression coverage ## Testing - updated focused Pest coverage for onboarding draft routing and lifecycle behavior - updated focused Pest coverage for shared diff partials and RBAC finding rendering ## Notes - Livewire v4.0+ compliance is preserved within the existing Filament v5 surfaces - provider registration remains unchanged in bootstrap/providers.php - no new Filament assets were added; existing deployment practice still relies on php artisan filament:assets when assets change Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #171
50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# Quickstart: RBAC Role Definition Diff UX Upgrade
|
|
|
|
## Goal
|
|
|
|
Upgrade the existing RBAC role definition diff region on the finding detail page so it becomes the first concrete consumer of the shared diff presentation foundation from Spec 141.
|
|
|
|
## Implementation Steps
|
|
|
|
1. Add a small RBAC-specific builder that reads `Finding.evidence_jsonb.rbac_role_definition` and produces `DiffPresentation` using the shared `DiffPresenter`.
|
|
2. Move RBAC-specific field-label mapping, field-order rules, and list-field designation into that builder rather than the Blade view.
|
|
3. Refactor `resources/views/filament/infolists/entries/rbac-role-definition-diff.blade.php` so it renders:
|
|
- the shared summary badge partial
|
|
- the shared row partial for each row
|
|
- the existing RBAC explanatory copy about assignments exclusion and restore support
|
|
4. Keep unchanged rows visible but visually quieter by relying on the shared unchanged-row partial.
|
|
5. Render Allowed Actions and any other approved simple list fields through the shared inline list partial.
|
|
6. Do not add a local “show only changes” toggle unless the implementation remains clearly low-risk and unnecessary complexity does not appear.
|
|
|
|
## Verification Targets
|
|
|
|
Update and run the smallest focused set first:
|
|
|
|
```bash
|
|
vendor/bin/sail artisan test --compact tests/Feature/Filament/FindingViewRbacEvidenceTest.php
|
|
vendor/bin/sail artisan test --compact tests/Unit/Support/Diff/DiffPresenterTest.php
|
|
vendor/bin/sail artisan test --compact tests/Feature/Support/Diff/SharedDiffRowPartialTest.php
|
|
vendor/bin/sail artisan test --compact tests/Feature/Support/Diff/SharedInlineListDiffPartialTest.php
|
|
```
|
|
|
|
Then format:
|
|
|
|
```bash
|
|
vendor/bin/sail bin pint --dirty --format agent
|
|
```
|
|
|
|
## Acceptance Checklist
|
|
|
|
- Changed rows are visually stronger than unchanged rows.
|
|
- Summary badges match the rendered row states.
|
|
- Allowed Actions shows added and removed actions as inline list chips.
|
|
- Baseline-only and current-only rows render as removed and added, not generic changed rows.
|
|
- No-change and sparse payloads render safely.
|
|
- No unrelated diff consumer is migrated.
|
|
|
|
## Notes
|
|
|
|
- Livewire compliance remains on v4 because the feature stays within the existing Filament v5 surface.
|
|
- Provider registration remains unchanged in `bootstrap/providers.php`; this feature introduces no new provider or panel.
|
|
- The Findings resource already has a View page, so there is no global-search eligibility issue introduced by this work.
|