PHPackages                             codeflextech/permission-manager - 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. codeflextech/permission-manager

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

codeflextech/permission-manager
===============================

A plug-and-play Roles &amp; Permissions management UI for Laravel using spatie/laravel-permission. Drop it in any project.

1.1.4(1mo ago)09↓85.7%MITPHPPHP ^8.2

Since Jun 5Pushed 1mo agoCompare

[ Source](https://github.com/faisalshah4004/permission-manager)[ Packagist](https://packagist.org/packages/codeflextech/permission-manager)[ RSS](/packages/codeflextech-permission-manager/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (10)Versions (6)Used By (0)

codeflextech/permission-manager
===============================

[](#codeflextechpermission-manager)

A plug-and-play **Roles &amp; Permissions management UI** for any Laravel project using `spatie/laravel-permission` + Livewire 3.

Built by [CodeFlexTech](https://codeflextech.com).

---

Features
--------

[](#features)

- ✅ **Permission CRUD** — create, edit, delete with dot-notation grouping (`module.action`)
- ✅ **Role CRUD** — create, edit, delete with user/permission counts
- ✅ **Role → Permissions** — visual grouped checkbox matrix with select/deselect all per group
- ✅ **User → Roles** — assign/revoke multiple roles per user
- ✅ **Dashboard** — stats overview + quick action cards
- ✅ **Auto permission groups** — auto-detects groups from `module.action` naming
- ✅ **Super admin protection** — blocks deletion of super admin role
- ✅ **Zero Tailwind build required** — ships its own standalone CSS
- ✅ **Livewire 3** — real-time search, modals, loading states, no full page reloads
- ✅ **Configurable** — layout, middleware, guard, user model, route prefix

---

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

[](#requirements)

DependencyVersionPHP^8.2Laravel^11.0spatie/laravel-permission^6.0livewire/livewire^3.0---

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

[](#installation)

### Step 1 — Install via Composer

[](#step-1--install-via-composer)

```
composer require codeflextech/permission-manager
```

### Step 2 — Publish assets

[](#step-2--publish-assets)

```
# Publish config
php artisan vendor:publish --tag=permission-manager-config

# Publish CSS (required — serves the UI styles)
php artisan vendor:publish --tag=permission-manager-assets

# Optional: publish views to customize
php artisan vendor:publish --tag=permission-manager-views
```

### Step 3 — Make sure spatie migrations are run

[](#step-3--make-sure-spatie-migrations-are-run)

```
php artisan migrate
```

### Step 4 — Add HasRoles trait to your User model

[](#step-4--add-hasroles-trait-to-your-user-model)

```
use Spatie\Permission\Traits\HasRoles;

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

### Step 5 — Visit the UI

[](#step-5--visit-the-ui)

```
http://your-app.test/permission-manager

```

---

Configuration
-------------

[](#configuration)

After publishing, edit `config/permission-manager.php`:

```
return [
    // URL prefix — default: /permission-manager
    'route_prefix' => 'permission-manager',

    // Middleware on all routes
    'middleware' => ['web', 'auth'],

    // Spatie guard
    'guard' => 'web',

    // Role name that bypasses permission checks
    'super_admin_role' => 'super_admin',

    // Your User model
    'user_model' => \App\Models\User::class,

    // Set to your app layout component to embed inside your app UI
    // e.g. 'layouts.app' — leave null to use package's standalone layout
    'layout' => null,

    // Rows per page
    'per_page' => 15,

    // Disable permission creation via UI (seed-only mode)
    'allow_create_permissions' => true,
];
```

---

Middleware / Access Control
---------------------------

[](#middleware--access-control)

By default only `auth` middleware is applied. To restrict to admins only, update config:

```
'middleware' => ['web', 'auth', 'role:super_admin'],
```

Or use a gate:

```
'middleware' => ['web', 'auth', 'can:manage-permissions'],
```

---

Permission Naming Convention
----------------------------

[](#permission-naming-convention)

This package works best with dot-notation:

```
module.action

Examples:
  clients.view
  clients.create
  clients.edit
  clients.delete
  invoices.create
  invoices.export
  reports.sales
  reports.due_payments
  organizations.edit

```

The UI auto-groups by the prefix before the first `.`.

---

Using Permissions in Your App
-----------------------------

[](#using-permissions-in-your-app)

```
// Check permission
$user->can('clients.create');
@can('clients.create') ... @endcan

// Check role
$user->hasRole('admin');
@role('admin') ... @endrole

// Assign role
$user->assignRole('admin');

// Sync roles
$user->syncRoles(['admin', 'editor']);

// Sync permissions to role
$role->syncPermissions(['clients.view', 'clients.create']);
```

---

Seeding Permissions
-------------------

[](#seeding-permissions)

Recommended: seed permissions in a seeder, use the UI only for role assignment.

```
class PermissionSeeder extends Seeder
{
    public function run(): void
    {
        $permissions = [
            // Clients
            'clients.view', 'clients.create', 'clients.edit', 'clients.delete',
            // Invoices
            'invoices.view', 'invoices.create', 'invoices.edit', 'invoices.delete',
            // Reports
            'reports.sales', 'reports.payments', 'reports.due',
            // Settings
            'roles.manage', 'permissions.manage', 'organizations.edit',
        ];

        foreach ($permissions as $permission) {
            Permission::firstOrCreate(['name' => $permission, 'guard_name' => 'web']);
        }

        // Create super admin role with all permissions
        $superAdmin = Role::firstOrCreate(['name' => 'super_admin']);
        $superAdmin->syncPermissions(Permission::all());
    }
}
```

---

Routes
------

[](#routes)

MethodURLNameDescriptionGET/permission-managerpermission-manager.indexDashboardGET/permission-manager/permissionspermission-manager.permissionsPermissions listGET/permission-manager/rolespermission-manager.rolesRoles listGET/permission-manager/roles/{id}/permissionspermission-manager.role-permissionsAssign permissions to roleGET/permission-manager/userspermission-manager.usersAssign roles to users---

Customizing Views
-----------------

[](#customizing-views)

```
php artisan vendor:publish --tag=permission-manager-views
```

Views are published to `resources/views/vendor/permission-manager/`.

---

Changelog
---------

[](#changelog)

### v1.0.0

[](#v100)

- Initial release
- Permission CRUD with group auto-detection
- Role CRUD with super admin protection
- Role → Permission grouped matrix
- User → Role assignment
- Standalone CSS, no Tailwind build required
- Livewire 3 real-time UI

---

License
-------

[](#license)

MIT — free to use in any project.

---

**Made with ❤️ by [CodeFlexTech](https://codeflextech.com)**

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

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 ~1 days

Total

5

Last Release

45d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/125204538?v=4)[Muhammad Faisal Shah](/maintainers/faisalshah4004)[@faisalshah4004](https://github.com/faisalshah4004)

---

Top Contributors

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

---

Tags

spatielaravellivewirerolespermissionsrbactailwind

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/codeflextech-permission-manager/health.svg)

```
[![Health](https://phpackages.com/badges/codeflextech-permission-manager/health.svg)](https://phpackages.com/packages/codeflextech-permission-manager)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)

PHPackages © 2026

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