laravilt/panel
Laravilt Panel is a Laravel package for building admin panels and dashboards with resources, forms, tables, widgets, and authentication. It offers a customizable, component-based UI for managing application data quickly.
This release is an authorization hardening update, not a feature release. It moves laravilt resource and relation-manager routes closer to Laravel’s native policy/Gate model by enforcing model policies on relation manager list/create/update/delete/bulk-delete routes, nested resource routes, and reorder routes. Parent-record viewability is now required, and related-model policy or nested canX() checks must permit the action or the request returns 403. Nested child lookups are also scoped to the parent record.
Architecture fit: Strong fit for Laravel applications already using policies and Gates. It reduces the need for custom middleware or ad-hoc authorization in admin/resource layers. The fallback behavior for models without a registered policy preserves backward compatibility for unscoped models.
Integration feasibility: High. The update is delivered through Composer and appears intended as a patch-level hardening release. Existing Laravel policy conventions apply, so integration is mostly configuration and test coverage rather than architectural change.
Technical risk: Moderate. Although versioned as v1.1.2, this is a behavioral change for any application relying on previously permissive relation-manager, nested-resource, or reorder routes. Missing or incomplete policies can now produce 403s in admin workflows. Bulk delete and reorder are especially likely to expose gaps. The broad composer update "laravilt/*" instruction may also pull sibling package updates, so dependency review is warranted.
Key questions:
laravilt/* set?update match existing application expectations, or should teams define explicit reorder abilities?Stack fit: Fits Laravel applications using Eloquent models, policies, Gates, and laravilt-admin/resource patterns. Teams already enforcing policy-based authorization will see the least friction. Teams using custom middleware, role checks, or inline authorization in relation managers should expect to reconcile those patterns with policy enforcement.
Migration path: Treat v1.1.2 as a security hardening upgrade. First inventory all laravilt resources, relation managers, nested resources, and reorder-enabled screens. Map each to a model policy and confirm view, create, update, delete, bulk-delete equivalent, and reorder/update abilities. Then update in a branch, run authorization-focused tests, and exercise admin UI flows before production rollout.
Compatibility: Models without registered policies behave as before, which limits blast radius. Applications with policies may see stricter behavior: parent records must be viewable, related model policies must allow the action, nested child records must belong to the parent, and reorder requires reorder or falls back to update. This is compatible with Laravel authorization semantics but may be operationally incompatible with permissive admin assumptions.
Sequencing:
composer.lock changes across laravilt/*.Maintenance: Policy ownership becomes more explicit. This is healthy long-term but increases the need to maintain policy coverage as resources and relation managers are added. Teams should add policy tests to prevent regressions.
Support: Expect possible support tickets immediately after rollout from users who previously had implicit access to relation-manager actions, nested resources, or reorder. Clear 403 messaging and admin guidance will matter. Support staff should know that 403s may indicate policy gaps rather than application failures.
Scaling: Authorization checks are lightweight relative to typical admin operations. Parent-scoped nested lookups may add constraint queries, but these are generally desirable and should be indexed appropriately. Bulk operations may amplify policy-check cost, so monitor large bulk deletes and relation-manager list screens.
Failure modes:
reorder nor update is allowed.laravilt/* update introduces unrelated sibling package changes.Ramp-up: Developers need a short orientation on how laravilt maps route actions to policy abilities, especially relation managers, nested resources, bulk delete, and reorder fallback. A concise internal runbook with policy examples and test patterns will reduce rollout friction. TPM should track policy coverage as part of the upgrade checklist and require staging validation before production.
How can I help you explore Laravel packages today?