enadstack/laravel-roles

Reusable Roles & Permissions (single or multi-tenant teams) on spatie/laravel-permission

Installs: 57

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/enadstack/laravel-roles

v1.3.6 2025-12-24 08:39 UTC

README

A reusable, multi-tenant, guard-aware ACL system for Laravel applications built on top of spatie/laravel-permission.

Features

  • Contract-based architecture with dependency injection
  • Three tenancy modes: single, team-scoped, multi-database
  • Guard-aware role and permission management
  • Contextual caching (tenant, guard, locale aware)
  • Permission matrix with efficient queries (no N+1)
  • Diff-based permission sync with wildcard support
  • Optional Vue UI (Inertia.js + shadcn-vue)
  • Comprehensive artisan commands
  • Full i18n support for labels and descriptions

Requirements

  • PHP 8.2+
  • Laravel 12.0+
  • spatie/laravel-permission 6.0+

Supported Tenancy Modes

Mode Description
single Non-multi-tenant applications
team_scoped Spatie's built-in team feature
multi_database External providers (stancl/tenancy, etc.)

Installation

composer require enadstack/laravel-roles
php artisan roles:install
php artisan roles:sync

Documentation

Changelog

See CHANGELOG.md for release history.

License

MIT License. See LICENSE for details.

Credits