PHPackages                             squareetlabs/laravel-simple-permissions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. squareetlabs/laravel-simple-permissions

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

squareetlabs/laravel-simple-permissions
=======================================

A comprehensive Laravel package for advanced permission management. Features RBAC, granular permissions, entity-specific abilities, global groups, audit logging, and seamless Laravel integration.

v1.0.7(3mo ago)440↓50%MITPHPPHP ^8.1

Since Dec 5Pushed 3mo agoCompare

[ Source](https://github.com/squareetlabs/LaravelSimplePermissions)[ Packagist](https://packagist.org/packages/squareetlabs/laravel-simple-permissions)[ RSS](/packages/squareetlabs-laravel-simple-permissions/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (8)Dependencies (13)Versions (9)Used By (0)

Squareetlabs/LaravelSimplePermissions
=====================================

[](#squareetlabslaravelsimplepermissions)

[![Latest Stable Version](https://camo.githubusercontent.com/e8c0a06d356ae4981a5a449227a071a9d1ab6d57519e83663b7276219ef62278/68747470733a2f2f706f7365722e707567782e6f72672f73717561726565746c6162732f6c61726176656c2d73696d706c652d7065726d697373696f6e732f762f737461626c65)](https://packagist.org/packages/squareetlabs/laravel-simple-permissions)[![PHP Version Require](https://camo.githubusercontent.com/3d8dab1fdf8f8723df6ab8ffb6ca5ffa3e553587cfe3f843a588488df29b9c80/68747470733a2f2f706f7365722e707567782e6f72672f73717561726565746c6162732f6c61726176656c2d73696d706c652d7065726d697373696f6e732f726571756972652f706870)](https://packagist.org/packages/squareetlabs/laravel-simple-permissions)[![License](https://camo.githubusercontent.com/c752e9a8203215aee995d4b1bfbdeec9dab4404845b9e934ad263478097d1040/68747470733a2f2f706f7365722e707567782e6f72672f73717561726565746c6162732f6c61726176656c2d73696d706c652d7065726d697373696f6e732f6c6963656e7365)](https://packagist.org/packages/squareetlabs/laravel-simple-permissions)

A comprehensive and flexible Laravel package for advanced permission management. This package provides a robust system for managing roles, permissions, groups, and entity-specific abilities.

**Core Functionality:**

- **Role-Based Access Control (RBAC)**: Define custom roles with specific permission sets. Roles can be assigned to users to manage access levels efficiently.
- **Permission System**: Implement fine-grained permissions using a code-based system (e.g., `posts.create`, `users.edit`). Permissions are global entities that can be assigned to roles and groups. Supports wildcard permissions for flexible access patterns.
- **Group Management** (Optional): Organize users into groups. Groups can have their own permission sets, allowing for efficient permission management when multiple users need the same access level. This feature is optional and can be skipped if not needed.
- **Entity-Specific Abilities**: Grant or deny permissions for specific model instances (e.g., allowing a user to edit a particular post but not others). This provides the most granular level of access control.
- **Caching &amp; Performance**: Intelligent caching system to optimize permission checks, reducing database queries and improving application performance.
- **Audit Logging**: Optional comprehensive audit trail that logs all permission-related actions including role assignments and permission changes.
- **Laravel Integration**: Seamlessly integrates with Laravel's built-in authorization system, including Policies, Blade directives, and middleware for route protection.

Key Features
------------

[](#key-features)

- ✅ **Roles &amp; Permissions**: Flexible role system with granular permissions
- ✅ **Direct Permissions**: Assign or revoke permissions directly to users, overriding role permissions
- ✅ **Groups** (Optional): Organize users into groups with shared permissions
- ✅ **Abilities**: (Optional) Entity-specific permissions for individual models
- ✅ **Smart Caching**: Caching system to optimize permission checks
- ✅ **Audit Logging**: Complete action logging (optional)
- ✅ **Blade Directives**: Blade directives for permission checks in views
- ✅ **Policies**: Integration with Laravel's Policy system
- ✅ **Middleware**: Middleware for route protection
- ✅ **Artisan Commands**: CLI tools for management
- ✅ **Events**: Event system for permission changes (RoleAssigned, RoleRemoved, AbilityGranted, AbilityRevoked, PermissionGranted, PermissionRevoked)
- ✅ **Validation**: Automatic validation of permission codes
- ✅ **Performance**: Optimized queries with eager loading

Requirements
------------

[](#requirements)

- PHP &gt;= 8.1
- Laravel 8.x, 9.x, 10.x, 11.x or 12.x

Installation
------------

[](#installation)

### 1. Install the Package

[](#1-install-the-package)

```
composer require squareetlabs/laravel-simple-permissions
```

### 2. Publish Configuration and Migrations

[](#2-publish-configuration-and-migrations)

```
php artisan vendor:publish --provider="Squareetlabs\LaravelSimplePermissions\SimplePermissionsServiceProvider"
```

This will publish:

- `config/simple-permissions.php` - Configuration file
- Database migrations

### 3. Configure the User Model

[](#3-configure-the-user-model)

Add the `HasPermissions` trait to your `User` model:

```
