elpandape/filament-warden
Filament Warden adds role and permission management to Filament admin panels. Define roles, assign abilities, and gate access to resources, pages, and actions through a clean, configurable interface. Built for Laravel, it keeps authorization simple and consistent across your whole panel.
elpandape/warden ^3.2 and carries a one-time migration step (php artisan warden:clean --stranded) for anyone coming from warden 3.0.0. This is a scheduled-maintenance decision, not a drop-in bump — budget a maintenance window and a post-deploy verification pass on the permission grid.$operation. If audit logging, "who changed what in one act" reporting, or SOC2-style change traceability is on the roadmap, this release makes that story defensible without custom instrumentation. Note the explicit scope: an operation opens no transaction and holds nothing back — grouping is for audit readability, not atomicity guarantees.SoftDeletes, this was a silent privilege-widening bug. That is a security posture question, not a feature question.SoftDeletes — that path is explicitly unsupported, and one known case still surfaces warden's TrashedCatalogRow as an error page when granting from the grid a permission whose plain row is in the trash. Verify your schema against this before committing.warden:clean --stranded will delete.To executives: This is a minor version with a material fix. A save on the permissions screen could previously report success while leaving a rule broader than intended — effectively granting more access than the admin believed they had. That is now blocked and rolled back. The release also makes each admin save read as a single, coherent act in the audit log, which strengthens our change-traceability story. Cost is one planned upgrade with a one-time cleanup command; no feature work, no user-facing redesign.
To engineering: Bump to warden ^3.2; if you are coming from warden 3.0.0, run php artisan warden:clean --stranded once as part of the upgrade. Saves on the grid, an account's roles, a role's inheritance, and direct-grant flips or removals now share one $operation across all dispatched events, including EditRole::save() and CreateRole::create() wrapping the whole page save. Refusals from warden on a trashed narrowed rule now fail the save and roll back instead of being shrugged off. Role deletion dispatches RoleRetracted per holder, so the old "no trace afterwards" warning text was wrong and has been corrected in both languages. Open items from 3.4.0 are untouched, and soft-deleted role/permission models plus authority-type-with-no-key rows remain unsupported — plan around them, don't work around them.
How can I help you explore Laravel packages today?