awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
spatie avatar

spatie/laravel-permission

0
View on GitHub↗
12,911 stars·1,823 forks·PHP·MIT·11 viewsspatie.be/docs/laravel-permission↗

Laravel Permission

This is a role-based access control system for Laravel applications that manages user permissions and roles within a database. It provides a database permissions manager to assign specific abilities to users and roles, utilizing authorization gates to restrict access to routes and interface elements.

The project features a wildcard permission system that uses pattern matching to grant broad access across multiple related permissions. It also supports team-scoped access control, allowing users to maintain different roles and permission levels across separate organizational contexts or teams.

The package includes middleware for route guarding, a caching system to reduce database query overhead, and a set of command-line tools for automating the administration of roles and permissions. It further provides mechanisms for view-level verification and event-driven cache invalidation.

Features

  • Role-Based Access Control - Implements a full role-based access control system to group permissions into roles and assign them to users.
  • Database-Backed RBAC - Provides a database-driven approach to storing and managing roles and permissions via many-to-many associations.
  • Authorization Gates - Implements centralized authorization gates to evaluate if users possess the required permissions for specific actions.
  • Access Control Guards - Provides route guards that block request execution based on required roles or permissions.
  • Authorization Middleware - Integrates with Laravel's authorization gates and middleware to restrict access to routes and UI elements.
  • Granular Permission Systems - Provides a framework for assigning granular, specific access rights to users and roles.
  • Access Control and Authorization - Provides granular authorization to control exactly which specific actions or features a user can access.
  • User Role Management - Provides mechanisms to associate users with specific roles to determine their overall capabilities.
  • Permission Management - Enables the dynamic creation and updating of user roles and permissions via a database without modifying code.
  • Request Guards - Provides middleware-based guards that validate user roles and permissions before allowing access to controller actions.
  • Role-Based Access Control Systems - Functions as a comprehensive role-based access control package for Laravel applications.
  • Web Application Security - Secures Laravel applications by implementing route guards and middleware to protect sensitive application areas.
  • Application Permission Managers - Provides a database permissions manager for assigning specific abilities to users and roles.
  • Wildcard Permission Matching - Features a wildcard system using pattern matching to grant broad access across multiple related permissions.
  • Permission Wildcards - Implements a wildcard permission system using pattern matching to grant broad access across multiple related abilities.
  • Data Caching - Utilizes a configurable caching system to store role and permission associations, reducing database overhead.
  • Permission Caching - Implements a driver-based caching system to persist evaluated permission sets and optimize performance.
  • Team-Scoped Access Control - Allows users to maintain different roles and permission levels across separate organizational contexts or teams.
  • Domain-Scoped Permissions - Supports multi-tenant scoping so that roles and permissions are isolated within specific organizational teams.
  • View-Level Verifications - Provides mechanisms to conditionally render UI elements based on the user's assigned roles or permissions.
  • Wildcard - Implements a flexible authorization approach using wildcards to grant broad access across related permissions.
  • Application Helpers - Manages users, roles, and permissions.
  • Authentication and Authorization - Associates users with specific roles and permissions.

Star history

Star history chart for spatie/laravel-permissionStar history chart for spatie/laravel-permission

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Laravel Permission

Similar open-source projects, ranked by how many features they share with Laravel Permission.
  • casbin/casbincasbin avatar

    casbin/casbin

    19,848View on GitHub↗

    Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse application environments. It decouples authorization logic from application code by using a configuration-driven approach, allowing developers to define access rules and evaluation logic independently. The system supports a wide range of access control models, including role-based, attribute-based, and relationship-based patterns, which are evaluated at runtime to determine if a subject is permitted to perform an action on a resource. The project distinguishes itself through a hig

    Goabacaccess-controlacl
    View on GitHub↗19,848
  • django-guardian/django-guardiandjango-guardian avatar

    django-guardian/django-guardian

    3,903View on GitHub↗

    django-guardian is a Django object permission library that enables the assignment of fine-grained access rights to individual database records. This system provides object-level access control, allowing users or groups to be granted permissions for specific model instances rather than applying a single global rule to an entire data model. The library includes a permission manager for the Django administrative interface, which provides a visual dashboard to assign and audit these instance-specific security rules. It also features an anonymous access controller to define and verify permissions

    Python
    View on GitHub↗3,903
  • zizaco/entrustZizaco avatar

    Zizaco/entrust

    6,008View on GitHub↗

    Entrust is a role-based access control library for the Laravel framework and a general permission management system for PHP. It provides a backend tool for linking users to specific roles and permissions to evaluate authorization rules. The system distinguishes itself through a logic engine capable of complex access rule evaluation, including boolean logic and wildcard-based permission matching. This allows for authorization checks based on pattern matching or requirements where a user must meet all or any of a set of specified permissions. The library covers route access restriction via mid

    PHP
    View on GitHub↗6,008
  • jeremykenedy/laravel-rolesjeremykenedy avatar

    jeremykenedy/laravel-roles

    1,043View on GitHub↗

    This package provides a comprehensive authorization framework for Laravel applications, enabling the management of user roles and granular permissions through a database-driven system. It allows developers to define access levels and assign them to users, ensuring that security policies are enforced consistently across the entire application. The system distinguishes itself through a hierarchical inheritance model, where permissions automatically propagate from lower-tier roles to higher-tier roles based on a numerical level system. It includes a dedicated administrative web interface that al

    PHPaclacl-managementeloquent
    View on GitHub↗1,043
See all 30 alternatives to Laravel Permission→

Frequently asked questions

What does spatie/laravel-permission do?

This is a role-based access control system for Laravel applications that manages user permissions and roles within a database. It provides a database permissions manager to assign specific abilities to users and roles, utilizing authorization gates to restrict access to routes and interface elements.

What are the main features of spatie/laravel-permission?

The main features of spatie/laravel-permission are: Role-Based Access Control, Database-Backed RBAC, Authorization Gates, Access Control Guards, Authorization Middleware, Granular Permission Systems, Access Control and Authorization, User Role Management.

What are some open-source alternatives to spatie/laravel-permission?

Open-source alternatives to spatie/laravel-permission include: casbin/casbin — Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse… django-guardian/django-guardian — django-guardian is a Django object permission library that enables the assignment of fine-grained access rights to… zizaco/entrust — Entrust is a role-based access control library for the Laravel framework and a general permission management system… jeremykenedy/laravel-roles — This package provides a comprehensive authorization framework for Laravel applications, enabling the management of… getgrav/grav — Grav is a flat-file content management system that eliminates the need for a traditional database by storing site… theorchid/platform — Platform is a framework for building back-office applications and administrative dashboards using Laravel. It…