PHPackages                             alifcoder/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. alifcoder/permissions

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

alifcoder/permissions
=====================

A simple role and permission management package for Laravel.

v1.0.12(3mo ago)1113MITPHPPHP &gt;=8.2

Since May 18Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/alifcoder/permission)[ Packagist](https://packagist.org/packages/alifcoder/permissions)[ RSS](/packages/alifcoder-permissions/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (4)Versions (14)Used By (0)

🔐 Alif Permissions
==================

[](#-alif-permissions)

A simple, flexible role and permission management system for Laravel applications — designed to support `Gate::before`, `SUPER ADMIN` logic, modular apps (`nwidart/laravel-modules`), and dynamic user model resolution.

---

✨ Features
----------

[](#-features)

- Role and permission management with pivot tables
- `SUPER ADMIN` bypass support using `Gate::before()`
- `HasRoles` trait for easy user integration
- Dynamically configurable user model
- Language file localization (EN, customizable)
- Clean service provider with publishable config and migrations
- Works with modular Laravel apps (like `nwidart/laravel-modules`)

---

📦 Requirements
--------------

[](#-requirements)

- PHP `>=8.2`
- Laravel `^11.0 || ^12.0 || ^13.0`

---

🚀 Installation
--------------

[](#-installation)

```
composer require alifcoder/permissions
```

Then publish the config, translations, and migrations:

```
php artisan vendor:publish --tag=permissions
php artisan migrate
```

This will publish:

- `lang/vendor/permissions`
- `config/permission.php`
- `database/migrations/xxxx_xx_xx_xxxxxx_create_permissions_table.php`

---

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

[](#️-configuration)

Inside `config/permissions.php`:

```
return [
    'models'    => [
        'role'       => \Alif\Permissions\Models\Role::class,
        'permission' => \Alif\Permissions\Models\Permission::class,
    ],

    'cacheable' => true,

    'is_model_uuid' => true,

];
```

You can override the default user model or super-admin slug here.

---

🧬 Traits
--------

[](#-traits)

In your `User` model, add the trait:

```
use Alif\Permissions\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}
```

---

🔐 Super Admin Access
--------------------

[](#-super-admin-access)

Add this in your app (e.g., `AuthServiceProvider`) — or it's auto-registered by the package:

```
Gate::before(function ($user, $ability) {
    return $user->isSuperAdmin() ? true : null;
});
```

This lets `super-admin` users bypass all policy/gate checks.

---

🧠 Usage
-------

[](#-usage)

### Assign Roles &amp; Permissions

[](#assign-roles--permissions)

```
$admin = Role::create(['name' => 'Admin', 's_code' => 'admin']);
$edit = Permission::create(['name' => 'products.update']);

$admin->permissions()->attach($edit->id);
$user->syncRoles($admin->id);
```

### Check Permissions

[](#check-permissions)

```
$user->hasAllRoles('admin'); // true
$user->hasAnyRoles('admin'); // true
$user->hasPermission('products.update'); // true
$user->isSuperAdmin(); // true or false
```

---

🌐 Localization
--------------

[](#-localization)

The package includes English (`en`) translations. To override or translate:

Then add `resources/lang/vendor/permissions/{locale}/permissions.php`.

---

🧑‍💻 Usage macro
---------------

[](#‍-usage-macro)

Also you can use Route macro to check permissions and roles:

```
Route::put('/products/{product}', function () {
    // Your logic here
})->permission('products.update');

Route::put('/admin', function () {
    // Your logic here
})->role('admin');
```

---

🧩 Folder Structure
------------------

[](#-folder-structure)

```
src/
├── Models/
│   ├── Role.php
│   └── Permission.php
├── Traits/
│   └── HasRoles.php
├── Middleware/
├── Console/
├── PermissionServiceProvider.php
config/
└── permissions.php
resources/
└── lang/en/permissions.php
database/
└── migrations/

```

---

🧹 Clear permission caches
-------------------------

[](#-clear-permission-caches)

Run this command to clear the permission cache:

```
php artisan permission:cache:clear
```

---

🧹 Uninstall (Clean Up)
----------------------

[](#-uninstall-clean-up)

Run this command before removing the package:

```
php artisan permission:uninstall
```

---

📜 License
---------

[](#-license)

MIT © [Shukhratjon Yuldashev](https://t.me/alif_coder)

---

🙌 Contributing
--------------

[](#-contributing)

Pull requests and suggestions are welcome!

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance82

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.5% 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.

###  Release Activity

Cadence

Every ~29 days

Recently: every ~79 days

Total

12

Last Release

95d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/94315908?v=4)[Shukhrat Yuldashev](/maintainers/alifcoder)[@alifcoder](https://github.com/alifcoder)

---

Top Contributors

[![iamshukhrat](https://avatars.githubusercontent.com/u/61014049?v=4)](https://github.com/iamshukhrat "iamshukhrat (14 commits)")[![khamdullaevuz](https://avatars.githubusercontent.com/u/81905341?v=4)](https://github.com/khamdullaevuz "khamdullaevuz (2 commits)")

### Embed Badge

![Health badge](/badges/alifcoder-permissions/health.svg)

```
[![Health](https://phpackages.com/badges/alifcoder-permissions/health.svg)](https://phpackages.com/packages/alifcoder-permissions)
```

###  Alternatives

[directorytree/ldaprecord-laravel

LDAP Authentication &amp; Management for Laravel.

5752.3M18](/packages/directorytree-ldaprecord-laravel)[illuminate/auth

The Illuminate Auth package.

10528.2M1.2k](/packages/illuminate-auth)[althinect/filament-spatie-roles-permissions

3481.1M10](/packages/althinect-filament-spatie-roles-permissions)[hasinhayder/tyro

Tyro - The ultimate Authentication, Authorization, and Role &amp; Privilege Management solution for Laravel 12 &amp; 13

6804.7k6](/packages/hasinhayder-tyro)[masterix21/laravel-licensing

Laravel licensing package with polymorphic assignment to any model, activation keys, expirations/renewals, and seat control via LicenseUsage. Supports offline verification with public-key–signed tokens, a CLI to generate/rotate/revoke keys, and an extensible architecture via config and contracts.

1563.1k4](/packages/masterix21-laravel-licensing)

PHPackages © 2026

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