misaf/vendra-permission
Role and permission management for Vendra: define roles, assign granular permissions, and gate access across your Laravel application. Integrates with Vendra's admin panel and Laravel's authorization layer to keep user access organized and secure.
TenantResolver, module Plugin registration, self.version alignment), not an isolated library pick. Frame it as a platform bet, and evaluate the parent repo's health, not this repo's.Consider it when:
vendra-tenant:enable retrofit are only valuable inside that world.Gate/policies.Look elsewhere when:
spatie/laravel-permission directly. This package is a wrapper; you would inherit an entire module graph for no benefit.[READ ONLY]; contributions and issue triage happen upstream. If you cannot get review attention in misaf/vendra, or will not commit to a private fork as fallback, that is a no.For executives — one slide. "Roles and permissions, including letting each customer configure their own, is table stakes for enterprise deals. This gives us that plus an admin UI out of the box, instead of six to ten weeks of in-house build. The cost is a maintained dependency, not a license — MIT." Lead with the enterprise gate it unblocks, not the architecture. Be explicit that it is part of a wider platform bet: adopting it means adopting the Vendra module ecosystem, so the pitch should be bundled with that decision rather than floated as a standalone win.
For engineering. "Spatie's permission model, wrapped with a Filament admin surface, strict types, tenant-aware migrations, and a Pest test convention. The work is not installation — it's reconciling existing bespoke Gate checks and building an authorization regression suite with explicit allow and deny cases. Plan shadow-mode comparison before cutover."
Risk framing for both. Do not hide it: authorization is a privilege-escalation surface, and the honest risks are (a) opaque release notes across a four-release jump, (b) a very small independent footprint with upstream-only governance, and (c) stale permission caches after revocation — a security incident, not a bug. Present mitigations as commitments: pin an exact version after diff review, run migrations forward and back on production-shaped data, ship a kill switch, and pre-agree a private-fork fallback before adoption rather than after. Ask engineering for one number up front: the estimate for the regression suite, because that artifact is what makes every future upgrade cheap and is the real cost of this decision.
How can I help you explore Laravel packages today?