- How do I install z3d0x/filament-simple-permissions?
- Install spatie/laravel-permission first and run its migrations, then require this package with Composer and publish its config. Register the plugin in your panel provider's panel() method, and you get a RoleResource plus pages and actions for managing roles and permissions. The assessment notes the whole setup fits comfortably in under a day in a non-production panel, with no service provider overrides, queues, or external services.
- Is z3d0x/filament-simple-permissions still maintained?
- No. The repository is archived and the last release was 2023-06-09, consisting mainly of Dependabot bumps to a CI action. Archival means no security patches, no Filament major-version compatibility work, and no issue triage. Treat it as stopped rather than stable and finished.
- Which Filament and Laravel versions does filament-simple-permissions support?
- The last release was June 2023, so its composer.json constraints target the Filament and Laravel versions available then and have not moved since. Because Filament ships majors on a roughly annual cadence, the package may already exclude your current Filament. Checking those constraints against your roadmap is the single answer that usually decides adopt versus build.
- Does filament-simple-permissions require spatie/laravel-permission?
- Yes, it is a hard prerequisite. The plugin is a thin Filament UI layered over spatie/laravel-permission and assumes its tables and permission cache, so install spatie and run its migrations before registering the plugin. The upside of that architecture is that the valuable part, the data model and caching, lives in an actively maintained dependency.
- How do I restrict a Filament resource or page to certain roles and permissions?
- The package provides helpers and a RoleResource so you can assign roles and permissions and gate access to pages and resources, keeping ACL setup simple. You define the permission and apply it in the resource. Watch guard names carefully, because a mismatch between the plugin config and the spatie config silently over- or under-privileges admins.
- What is the difference between this package and using spatie/laravel-permission alone?
- Spatie provides the roles, permissions, guards, and cache; this package adds Filament screens, namely a RoleResource with accompanying pages and actions, so admins can manage them without custom code. The trade-off is a small, replaceable UI layer that is now archived. A hand-rolled RoleResource over spatie is roughly a day of work.
- Can I use filament-simple-permissions with Filament v3 or a newer major?
- Verify this in composer.json rather than assuming, since the archived code's constraints are frozen at mid-2023. Filament ships majors roughly annually, so an archived plugin is likely to be a hard blocker on panel upgrades. Test the plugin in a staging panel against your target Filament version before planning any upgrade.
- How should I test roles and permissions in a Filament panel using this plugin?
- Cover the things that fail silently: guard configuration, any Gate::before super-admin bypass, and permission cache freshness. Assert that a user lacking a permission is denied access to the resource or page, and re-test after cache clears and role changes. This class of bug tends to surface in an audit rather than in CI, so explicit tests matter.
- What are the security risks of using an archived permissions plugin?
- The package gates admin-panel access, so misconfiguration has an outsized blast radius: a guard mismatch, an overly broad Gate::before bypass, or a stale permission cache can over- or under-privilege admins. Archival also removes the security patch and disclosure channel entirely. If you have compliance or security-review obligations, an unmaintained vendor package likely cannot satisfy them.
- How do I migrate off filament-simple-permissions later?
- The migration path is cheap because spatie/laravel-permission holds the data model, seeding, and caching, so the hard part survives. Either fork the few hundred lines under your own namespace with a named maintainer and test suite, or replace it with a hand-rolled RoleResource over spatie. In both cases you drop the plugin registration and keep the existing spatie tables.