elpandape/filament-permission
elpandape/filament-permission is a Filament plugin for managing roles and permissions in Laravel admin panels. It provides UI resources for creating roles, assigning permissions, and controlling access to Filament resources and pages, helping teams implement authorization quickly.
PrivilegedRole::isLastHolder() lets the product disable destructive actions, show warnings, and require a handover before the last holder can be changed. This is a roadmap-relevant capability for enterprise/self-hosted admin products where a locked-out panel is a support and trust incident.Consider adoption when:
PrivilegedRole::isLastHolder() to drive UI state: disable detach buttons, show “transfer access first” messaging, or gate custom actions.spatie/laravel-permission or similar, and the edge cases in v1.10.0 match your product’s governance model.Look elsewhere or proceed cautiously when:
For executives: This release reduces the operational risk of admin lockout and privilege sprawl. Instead of a privileged role that nobody can assign—which pushed teams toward worse workarounds—the package now supports controlled handover by an existing holder, prevents the last holder from being removed, and aligns revocation with grant authority. In practice, that means fewer support escalations, safer delegation to operations teams, and less custom code to protect super-admin access.
For engineering: v1.10.0 is a focused governance release. It adds PrivilegedRole::isLastHolder() and changes two important behaviors: privileged-role assignment is now a holder-to-holder handover, not a blanket refusal; and role detachment is limited to actors who could have granted the role. The relation manager also stops offering detach actions that exceed the editor’s authority. Treat this as a behavioral upgrade: review custom actions, tests, and admin UX around role assignment/removal, and add UI handling for the last-holder case.
For security and operations: The package now enforces the important half of the privileged-role rule—non-holders cannot take or assign it—while allowing legitimate transfer. Last-holder protection prevents a panel from becoming unadministrable. Recommend adding an explicit “transfer privileged access” step to runbooks and confirming that break-glass CLI procedures remain documented for disaster recovery.
How can I help you explore Laravel packages today?