PHPackages                             cuongnx/laravel-mongodb-permission - 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. cuongnx/laravel-mongodb-permission

ActiveLibrary

cuongnx/laravel-mongodb-permission
==================================

A flexible and multi-guard Role &amp; Permission system for Laravel 11+ and 12+, using MongoDB and inspired by Spatie.

v1.1.1(10mo ago)5280MITPHPPHP ^8.1

Since Jul 12Pushed 10mo agoCompare

[ Source](https://github.com/xuancuong220691/laravel-mongodb-permission)[ Packagist](https://packagist.org/packages/cuongnx/laravel-mongodb-permission)[ RSS](/packages/cuongnx-laravel-mongodb-permission/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

MongoPermission – Role &amp; Permission for MongoDB in Laravel 11+
==================================================================

[](#mongopermission--role--permission-for-mongodb-in-laravel-11)

> ✅ Supports Laravel 11 and 12+ with full MongoDB role/permission management.

[![Laravel](https://camo.githubusercontent.com/0b54a14e9c8ecbfbc8c6af588e474039bed98bdd341110cacf2833525faa87ef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d313125323025374325323031322d6f72616e6765)](https://camo.githubusercontent.com/0b54a14e9c8ecbfbc8c6af588e474039bed98bdd341110cacf2833525faa87ef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d313125323025374325323031322d6f72616e6765)[![MongoDB](https://camo.githubusercontent.com/73c18b56e34970276e4e5e393cb7b2e23b777bb622a42e581d892b230ef28239/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f6e676f44422d436f6d70617469626c652d677265656e)](https://camo.githubusercontent.com/73c18b56e34970276e4e5e393cb7b2e23b777bb622a42e581d892b230ef28239/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f6e676f44422d436f6d70617469626c652d677265656e)[![License](https://camo.githubusercontent.com/15d02f4e77c456cef218b76836a596c34cd35b2ef01513005ac25e376c5ab820/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7875616e63756f6e673232303639312f6c61726176656c2d6d6f6e676f64622d7065726d697373696f6e)](https://camo.githubusercontent.com/15d02f4e77c456cef218b76836a596c34cd35b2ef01513005ac25e376c5ab820/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7875616e63756f6e673232303639312f6c61726176656c2d6d6f6e676f64622d7065726d697373696f6e)

MongoPermission is a library that extends Spatie's **Role &amp; Permission** system to support **MongoDB**, with multi-guard support, easy-to-use syntax, and flexible expansion for Laravel applications.

---

🧾 Version Information
---------------------

[](#-version-information)

ItemRequirement**Library Version**`v1.0.0` \***Supported Laravel Version**`^11.0`**MongoDB Laravel Driver**[`mongodb/laravel-mongodb`](https://github.com/mongodb/laravel-mongodb) `^3.9`**MongoDB PHP Extension**`mongodb` PHP extension `>=1.13`**MongoDB Server**`>=4.0`**PHP Version**`>=8.0`> 💡 Make sure to install MongoDB Laravel package:

```
composer require mongodb/laravel-mongodb
```

---

✅ Features
----------

[](#-features)

- Role and Permission support with MongoDB
- Multi-guard support: `web`, `admin`, etc.
- Middleware: `role`, `permission` (supports multiple roles/permissions)
- Extended Blade directives: `@role`, `@permission`, `@hasanyrole`, `@hasallroles`
- Powerful CLI command: `php artisan mp:manage`
- Easily extendable UI or integration into admin systems

---

⚙️ Installation
---------------

[](#️-installation)

```
composer require cuongnx/laravel-mongodb-permission
```

---

🔧 MongoDB Configuration
-----------------------

[](#-mongodb-configuration)

**`.env`:**

```
DB_CONNECTION=mongodb
DB_DATABASE=your_database
```

**`config/auth.php`:**

```
'guards' => [
    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
],

'providers' => [
    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Models\Admin::class,
    ],
],
```

---

🧩 Model Setup
-------------

[](#-model-setup)

```
use CuongNX\MongoPermission\Traits\HasRoles;

class Admin extends Authenticatable
{
    use HasRoles;

    protected $guard_name = 'admin';
}
```

---

🛡 Middleware Usage
------------------

[](#-middleware-usage)

```
Route::middleware(['auth:admin', 'role:admin|mod'])->group(function () {
    Route::get('/admin/dashboard', fn() => 'Welcome Admin');
});
```

- Middleware supports multiple roles/permissions:

```
->middleware('role:admin|mod')
->middleware('permission:edit-users|delete-posts')
```

---

🎨 Blade Directives
------------------

[](#-blade-directives)

```
@role('admin')
    You are an Admin
@endrole

@permission('edit-users')
    You can edit users
@endpermission

@hasanyrole('admin|mod')
    You have at least one role
@endhasanyrole

@hasallroles('admin|mod')
    You have all the roles
@endhasallroles
```

> Guard can be passed explicitly: `@role('admin', 'admin')`

---

🧠 CLI Usage
-----------

[](#-cli-usage)

```
php artisan mp:manage --create-role=admin,mod --guard=admin
```

### 🎯 Available Options:

[](#-available-options)

OptionDescription`--create-role=`Create one or more roles`--delete-role=`Delete one or more roles`--create-permission=`Create one or more permissions`--delete-permission=`Delete one or more permissions`--assign-permission=`Assign permissions to a role. Format: `role:permission1permission2``--list-roles`List all roles`--list-permissions`List all permissions`--guard=`Guard name (default: `web`)`--reset`Remove all roles and permissions`--export=path/to/file.json`Export all roles &amp; permissions to a JSON file`--import=path/to/file.json`Import from a JSON file`--sync-role-permissions=`Sync permissions for role from JSON file (`role:path.json`)`--show-role=role`View detailed information about a role📌 **Example**:

```
php artisan mp:manage --create-role=admin,mod --create-permission=edit,delete --assign-permission=admin:edit|delete --guard=admin
```

---

📦 Export / Import JSON
----------------------

[](#-export--import-json)

```
php artisan mp:manage --export=storage/permissions.json
php artisan mp:manage --import=storage/permissions.json
php artisan mp:manage --sync-role-permissions=admin:storage/admin-perms.json
```

---

📂 Library Structure
-------------------

[](#-library-structure)

```
src/
├── Console/
│   └── Commands/MongoPermissionManager.php
├── Middleware/
│   ├── RoleMiddleware.php
│   └── PermissionMiddleware.php
├── Models/
│   ├── Role.php
│   └── Permission.php
├── Services/
│   ├── Contracts/
│   │   └── PermissionServiceInterface.php
│   └── PermissionService.php
├── Support/
│   └── BladeDirectivesRegistrar.php
├── Traits/
│   └── HasRoles.php
└── Providers/
    └── MongoPermissionServiceProvider.php

```

---

💖 Donate
--------

[](#-donate)

If you find this package useful, feel free to support the development:

### ☕ Coffee &amp; Support

[](#-coffee--support)

-
-

### 🏦 Bank (VIETQR)

[](#-bank-vietqr)

[![QR Code Techcombank](https://camo.githubusercontent.com/1680704122b7107d9fddb36677fd5ae41368a9775d38b63eaccbe600d6da32c4/68747470733a2f2f696d672e7669657471722e696f2f696d6167652f3937303430372d313336383638363835362d7072696e742e706e673f6163636f756e744e616d653d4e677579656e2532305875616e25323043756f6e67)](https://camo.githubusercontent.com/1680704122b7107d9fddb36677fd5ae41368a9775d38b63eaccbe600d6da32c4/68747470733a2f2f696d672e7669657471722e696f2f696d6167652f3937303430372d313336383638363835362d7072696e742e706e673f6163636f756e744e616d653d4e677579656e2532305875616e25323043756f6e67)

- **Account Holder**: NGUYEN XUAN CUONG
- **Account Number**: `1368686856`
- **Bank**: Techcombank

---

📬 Contact
---------

[](#-contact)

- Email:

---

🪪 License
---------

[](#-license)

MIT License © [Cuong Nguyen](mailto:xuancuong220691@gmail.com)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance54

Moderate activity, may be stable

Popularity19

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

305d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/951e95d597ea9f09e996482a483501ca3eba1233872148e8513405e9c87fe23b?d=identicon)[xuancuong220691](/maintainers/xuancuong220691)

---

Top Contributors

[![xuancuong220691](https://avatars.githubusercontent.com/u/12405391?v=4)](https://github.com/xuancuong220691 "xuancuong220691 (6 commits)")

### Embed Badge

![Health badge](/badges/cuongnx-laravel-mongodb-permission/health.svg)

```
[![Health](https://phpackages.com/badges/cuongnx-laravel-mongodb-permission/health.svg)](https://phpackages.com/packages/cuongnx-laravel-mongodb-permission)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11320.2M21](/packages/anourvalar-eloquent-serialize)[namu/wirechat

A Laravel Livewire messaging app for teams with private chats and group conversations.

54324.5k](/packages/namu-wirechat)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135192.6k5](/packages/statamic-rad-pack-runway)

PHPackages © 2026

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