PHPackages                             odhiamboatieno/laravel-entrust - 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. odhiamboatieno/laravel-entrust

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

odhiamboatieno/laravel-entrust
==============================

This package provides a flexible solution to add ACL to Laravel

020PHP

Since May 10Pushed 1y ago1 watchersCompare

[ Source](https://github.com/odhiamboatieno/laravel-entrust)[ Packagist](https://packagist.org/packages/odhiamboatieno/laravel-entrust)[ RSS](/packages/odhiamboatieno-laravel-entrust/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Entrust (Supports Laravel 5 to 12)
==========================================

[](#laravel-entrust-supports-laravel-5-to-12)

A robust and flexible package to manage role-based permissions for your Laravel applications.

Version Compatibility
---------------------

[](#version-compatibility)

LaravelLaravel Entrust12.x\[4.x\]11.x\[4.x\]10.x\[4.x\]9.x\[3.x\]8.x\[2.x\]7.x - 5.x\[1.x\]📌 Table of Contents
-------------------

[](#-table-of-contents)

- [Introduction](#introduction)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)

    - [Roles and Permissions](#roles-and-permissions)
    - [Middleware](#middleware)
    - [Soft Deletes](#soft-deletes)
- [Troubleshooting](#troubleshooting)
- [Contribution Guidelines](#contribution-guidelines)
- [License](#license)

---

🚀 Introduction
--------------

[](#-introduction)

**Laravel Entrust** is a role and permission management package for Laravel applications, providing an intuitive way to manage user roles and permissions.

### Key Features

[](#key-features)

- Role and Permission Management
- Middleware for Authorization Control
- Configurable Permission Structure
- Easy-to-use API for Role and Permission Checks

✅ Installation
--------------

[](#-installation)

1. Install the package via composer:

```
composer require odhiamboatieno/laravel-entrust
```

2. Publish the package configuration:

```
php artisan vendor:publish --tag="LaravelEntrust"
```

3. Run the setup command to create migration files:

```
php artisan laravel-entrust:setup
```

4. Add the `LaravelEntrustUserTrait` to your User model:

```
use Odhiambo\LaravelEntrust\Traits\LaravelEntrustUserTrait;

class User extends Model
{
    use LaravelEntrustUserTrait;
}
```

⚙️ Configuration
----------------

[](#️-configuration)

1. Configure the published file in `config/entrust.php` to set your models, tables, and guard settings.
2. Define the roles, permissions, and relationships as needed for your application.

✅ Usage
-------

[](#-usage)

### Roles and Permissions

[](#roles-and-permissions)

Assign roles and permissions to users using the trait methods:

```
$user = User::find(1);
$user->attachRole('admin');
$user->hasRole('admin'); // true
$user->hasPermission('create-post');
```

### Middleware

[](#middleware)

Protect your routes using middleware for roles or permissions:

```
Route::group(['middleware' => ['role:admin']], function() {
    Route::get('/dashboard', [DashboardController::class, 'index']);
});

Route::get('/posts', [PostController::class, 'index'])->middleware('permission:view-posts');
```

### Soft Deletes

[](#soft-deletes)

If using soft deletes on roles or permissions, ensure to clear relationships before force deleting:

```
$role = Role::find(1);
$role->users()->sync([]);
$role->permissions()->sync([]);
$role->forceDelete();
```

❓ Troubleshooting
-----------------

[](#-troubleshooting)

If you encounter migration errors, ensure your database uses the correct integer type (BigInteger) for foreign keys.

💡 Contribution Guidelines
-------------------------

[](#-contribution-guidelines)

- Follow PSR-12 coding standards.
- Submit bug reports or feature requests via GitHub Issues.
- Pull requests are welcome.

📜 License
---------

[](#-license)

Laravel-Entrust is licensed under the MIT license.

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/74879008?v=4)[Odhiambo Atieno](/maintainers/odhiamboatieno)[@odhiamboatieno](https://github.com/odhiamboatieno)

---

Top Contributors

[![odhiamboatieno](https://avatars.githubusercontent.com/u/74879008?v=4)](https://github.com/odhiamboatieno "odhiamboatieno (2 commits)")

### Embed Badge

![Health badge](/badges/odhiamboatieno-laravel-entrust/health.svg)

```
[![Health](https://phpackages.com/badges/odhiamboatieno-laravel-entrust/health.svg)](https://phpackages.com/packages/odhiamboatieno-laravel-entrust)
```

###  Alternatives

[kartik-v/yii2-password

Useful password strength validation utilities for Yii Framework 2.0

761.2M17](/packages/kartik-v-yii2-password)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
