itsmejoshua/novaspatiepermissions
A Laravel Nova tool for managing Spatie permissions straight from your admin panel. Browse, assign, and revoke roles and permissions for users through a clean Nova interface, making access control simple without custom code.
spatie/laravel-permission? For a team already on Nova + Spatie, this represents the "buy" (or rather, "borrow") option at near-zero cost.Consider it when all of the following hold:
spatie/laravel-permission as the authorization backbone. This package is only meaningful at that intersection; it is not an alternative to either.composer.json constraints before committing; Nova major versions move quickly and community tools lag.Look elsewhere — or build it yourself — when:
To executives: This is a small, free open-source component that lets non-engineers manage user roles and permissions from our existing admin panel instead of filing engineering tickets. The business value is speed to enterprise readiness — customer-defined roles are a frequent procurement checkbox — and reduced engineering toil on routine access changes. The risk is maintenance: the package has effectively no community, so we would own it. Recommended path is a short spike (1–2 days) to validate fit and Nova compatibility, then either vendor a pinned copy with our own tests, or spend roughly a sprint building the equivalent in-house for full control. Either outcome is cheap; the decision that matters is committing to an explicit permission model (guards, tenant scoping, naming) before we ship anything.
To engineering: This is a thin Nova tool over spatie/laravel-permission — UI for role/permission CRUD and user-role assignment, not a new authorization engine. Evaluation criteria are: compatible Nova and Spatie version constraints, single-guard and non-teams assumptions, and whether it handles permission caching correctly on write (Spatie caches permissions; a UI that mutates them without flushing the cache causes stale-authorization bugs that are painful to debug). Plan to fork and pin rather than depend on upstream, add feature tests around cache invalidation and guard behavior, and keep the permission model in config/migrations as the source of truth so the UI never becomes the only record of authorization state.
How can I help you explore Laravel packages today?