PHPackages                             nigus-abate/laravel-permify - 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. nigus-abate/laravel-permify

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

nigus-abate/laravel-permify
===========================

Laravel Permify is a powerful, easy-to-use Laravel package for managing roles and permissions with full CRUD UI and middleware support.

1.x-dev(11mo ago)215MITPHPPHP ^8.0CI passing

Since May 26Pushed 11mo agoCompare

[ Source](https://github.com/nigus-abate/laravel-permify)[ Packagist](https://packagist.org/packages/nigus-abate/laravel-permify)[ RSS](/packages/nigus-abate-laravel-permify/feed)WikiDiscussions main Synced 1mo ago

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

Laravel-Permify
===============

[](#laravel-permify)

[![Total Downloads](https://camo.githubusercontent.com/cb36fb476be367eaffbaa63fbe4542698f716c3e4085498b636cb397b1b839d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e696775732d61626174652f6c61726176656c2d7065726d696679)](https://packagist.org/packages/nigus-abate/laravel-permify/stats)[![Latest Stable Version](https://camo.githubusercontent.com/fe8de7b34f8adc2199db246c9c30e4c4c43c9ee8a53b934dbf5539cbf8120efa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e696775732d61626174652f6c61726176656c2d7065726d696679)](https://packagist.org/packages/nigus-abate/laravel-permify)[![License](https://camo.githubusercontent.com/823fb6750af3cddc3b73f39735350fd4db990a9f48346902c7731cf460534caf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6e696775732d61626174652f6c61726176656c2d7065726d696679)](https://github.com/nigus-abate/laravel-permify/blob/main/LICENSE)

**Laravel Permify** is a powerful, easy-to-use Laravel package for managing roles and permissions with full CRUD UI and middleware support. [![dashbaord](https://private-user-images.githubusercontent.com/213416851/448238806-8560bcff-39cb-44bb-9935-55e67d591a2f.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU1ODkzMzksIm5iZiI6MTc3NTU4OTAzOSwicGF0aCI6Ii8yMTM0MTY4NTEvNDQ4MjM4ODA2LTg1NjBiY2ZmLTM5Y2ItNDRiYi05OTM1LTU1ZTY3ZDU5MWEyZi5qcGVnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDdUMTkxMDM5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzM4YmJiZDcxZTI5NTI4OTJjZGU5OTk1NGE1OWFjMjFhOGZiNGJiY2JiZDAzOTA0NTE0MmU3NzA1ZTc2ZTcwMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.TidAmeXpqPresO7nwhiq30VBqE4LNSddhP15Hmhh3kE)](https://private-user-images.githubusercontent.com/213416851/448238806-8560bcff-39cb-44bb-9935-55e67d591a2f.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU1ODkzMzksIm5iZiI6MTc3NTU4OTAzOSwicGF0aCI6Ii8yMTM0MTY4NTEvNDQ4MjM4ODA2LTg1NjBiY2ZmLTM5Y2ItNDRiYi05OTM1LTU1ZTY3ZDU5MWEyZi5qcGVnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDdUMTkxMDM5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzM4YmJiZDcxZTI5NTI4OTJjZGU5OTk1NGE1OWFjMjFhOGZiNGJiY2JiZDAzOTA0NTE0MmU3NzA1ZTc2ZTcwMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.TidAmeXpqPresO7nwhiq30VBqE4LNSddhP15Hmhh3kE)

Introduction
------------

[](#introduction)

This package is a modification of Laravel UI 4.x package. It is created to fill the gap of a simple tailwind authentication scaffolding and Role and Permissions by copying the methods used in Laravel UI 4.x package

While Laravel does not dictate which JavaScript or CSS pre-processors you use, it does provide a basic starting point using [Bootstrap](https://getbootstrap.com/), [React](https://reactjs.org/), and / or [Vue](https://vuejs.org/) that will be helpful for many applications. By default, Laravel uses [NPM](https://www.npmjs.org/) to install both of these frontend packages.

> This legacy package is a very simple authentication scaffolding built on the Bootstrap CSS framework. While it continues to work with the latest version of Laravel, you should consider using [Laravel Breeze](https://github.com/laravel/breeze) for new projects. Or, for something more robust, consider [Laravel Jetstream](https://github.com/laravel/jetstream).

Official Documentation
----------------------

[](#official-documentation)

### Supported Versions

[](#supported-versions)

Only the latest major version of Laravel Permify receives bug fixes. The table below lists compatible Laravel versions:

VersionLaravel Version[1.x](https://github.com/nigus-abate/laravel-permify/tree/main)9.x, 10.x, 11.x, 12.XFeatures
--------

[](#features)

- Role and Permission management with CRUD operations
- Middleware to protect routes via permissions (`RoleMiddleware` middleware)
- Blade directives for easy permission checks (`@can`)
- Traits for User models to assign/check roles and permissions
- Publishable migrations, views, and config
- Fully customizable admin UI with Bootstrap CSS, Vue and React

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

[](#installation)

Require the package via Composer:

```
composer require nigus-abate/laravel-permify
```bash
// Generate basic scaffolding...
php artisan permify bootstrap
php artisan permify tailwind
php artisan permify vue
php artisan permify react

// Generate login / registration scaffolding...
php artisan permify:auth bootstrap
php artisan permify:auth tailwind
php artisan permify:auth vue
php artisan permify:auth react
```

### Usage

[](#usage)

Add the HasAdvancedRoles trait to your User model:

```
use Permify\Traits\HasAdvancedRoles;
class User extends Authenticatable
{
	use HasAdvancedRoles;
	// ...
}

Add the RoleMiddleware to your app/bootstrap/app:

$middleware->group('web',[
	\App\Http\Middleware\RoleMiddleware::class,
]);
```

### Example usage in the controller

[](#example-usage-in-the-controller)

```

@endcan
```

### If you install Tailwind replace the resources/css/app.css with the below

[](#if-you-install-tailwind-replace-the-resourcescssappcss-with-the-below)

```
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Optional custom CSS */
:root {
	--font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
	'Segoe UI Symbol', 'Noto Color Emoji';
}
```

#### CSS

[](#css)

Laravel officially supports [Vite](https://laravel.com/docs/vite), a modern frontend build tool that provides an extremely fast development environment and bundles your code for production. Vite supports a variety of CSS preprocessor languages, including SASS and Less, which are extensions of plain CSS that add variables, mixins, and other powerful features that make working with CSS much more enjoyable. In this document, we will briefly discuss CSS compilation in general; however, you should consult the full [Vite documentation](https://laravel.com/docs/vite#working-with-stylesheets) for more information on compiling SASS or Less.

#### JavaScript

[](#javascript)

Laravel does not require you to use a specific JavaScript framework or library to build your applications. In fact, you don't have to use JavaScript at all. However, Laravel does include some basic scaffolding to make it easier to get started writing modern JavaScript using the [Vue](https://vuejs.org) library. Vue provides an expressive API for building robust JavaScript applications using components. As with CSS, we may use Vite to easily compile JavaScript components into a single, browser-ready JavaScript file.

### Writing CSS

[](#writing-css)

After installing the `nigus-abate/laravel-permify` Composer package and [generating the frontend scaffolding](#introduction), Laravel's `package.json` file will include the `bootstrap` package to help you get started prototyping your application's frontend using Bootstrap. However, feel free to add or remove packages from the `package.json` file as needed for your own application. You are not required to use the Bootstrap framework to build your Laravel application - it is provided as a good starting point for those who choose to use it.

Before compiling your CSS, install your project's frontend dependencies using the [Node package manager (NPM)](https://www.npmjs.org):

```
npm install
```

Once the dependencies have been installed using `npm install`, you can compile your SASS files to plain CSS using [Vite](https://laravel.com/docs/vite#working-with-stylesheets). The `npm run dev` command will process the instructions in your `vite.config.js` file. Typically, your compiled CSS will be placed in the `public/build/assets` directory:

```
npm run dev
```

The `vite.config.js` file included with Laravel's frontend scaffolding will compile the `resources/sass/app.scss` SASS file. This `app.scss` file imports a file of SASS variables and loads Bootstrap, which provides a good starting point for most applications. Feel free to customize the `app.scss` file however you wish or even use an entirely different pre-processor by [configuring Vite](https://laravel.com/docs/vite#working-with-stylesheets).

### Writing JavaScript

[](#writing-javascript)

All of the JavaScript dependencies required by your application can be found in the `package.json` file in the project's root directory. This file is similar to a `composer.json` file except it specifies JavaScript dependencies instead of PHP dependencies. You can install these dependencies using the [Node package manager (NPM)](https://www.npmjs.org):

```
npm install
```

> By default, the Laravel `package.json` file includes a few packages such as `lodash` and `axios` to help you get started building your JavaScript application. Feel free to add or remove from the `package.json` file as needed for your own application.

Once the packages are installed, you can use the `npm run dev` command to [compile your assets](https://laravel.com/docs/vite). Vite is a module bundler for modern JavaScript applications. When you run the `npm run dev` command, Vite will execute the instructions in your `vite.config.js` file:

```
npm run dev
```

By default, the Laravel `vite.config.js` file compiles your SASS and the `resources/js/app.js` file. Within the `app.js` file you may register your Vue components or, if you prefer a different framework, configure your own JavaScript application. Your compiled JavaScript will typically be placed in the `public/build/assets` directory.

> The `app.js` file will load the `resources/js/bootstrap.js` file which bootstraps and configures Vue, Axios, jQuery, and all other JavaScript dependencies. If you have additional JavaScript dependencies to configure, you may do so in this file.

#### Writing Vue Components

[](#writing-vue-components)

When using the `nigus-abate/laravel-permify` package to scaffold your frontend, an `ExampleComponent.vue` Vue component will be placed in the `resources/js/components` directory. The `ExampleComponent.vue` file is an example of a [single file Vue component](https://vuejs.org/guide/scaling-up/sfc.html) which defines its JavaScript and HTML template in the same file. Single file components provide a very convenient approach to building JavaScript driven applications. The example component is registered in your `app.js` file:

```
import ExampleComponent from './components/ExampleComponent.vue';
Vue.component('example-component', ExampleComponent);
```

To use the component in your application, you may drop it into one of your HTML templates. For example, after running the `php artisan ui vue --auth` Artisan command to scaffold your application's authentication and registration screens, you could drop the component into the `home.blade.php` Blade template:

```
@extends('layouts.app')

@section('content')

@endsection
```

> Remember, you should run the `npm run dev` command each time you change a Vue component. Or, you may run the `npm run watch` command to monitor and automatically recompile your components each time they are modified.

If you are interested in learning more about writing Vue components, you should read the [Vue documentation](https://vuejs.org/guide/), which provides a thorough, easy-to-read overview of the entire Vue framework.

#### Using React

[](#using-react)

If you prefer to use React to build your JavaScript application, Laravel makes it a cinch to swap the Vue scaffolding with React scaffolding:

```
composer require nigus-abate/laravel-permify

// Generate basic scaffolding...
php artisan permify react

// Generate login / registration scaffolding...
php artisan permify react --auth
```

### Adding Presets

[](#adding-presets)

Presets are "macroable", which allows you to add additional methods to the `PermifyCommand` class at runtime. For example, the following code adds a `nextjs` method to the `PermifyCommand` class. Typically, you should declare preset macros in a [service provider](https://laravel.com/docs/providers):

```
use Permify\PermifyCommand;

PermifyCommand::macro('nextjs', function (PermifyCommand $command) {
    // Scaffold your frontend...
});
```

Then, you may call the new preset via the `permify` command:

```
php artisan permify nextjs
```

Contributing
------------

[](#contributing)

Thank you for considering contributing to Permify UI!.

Code of Conduct
---------------

[](#code-of-conduct)

In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](https://github.com/nigus-abate/laravel-permify/security/policy) on how to report security vulnerabilities.

License
-------

[](#license)

Laravel Permify is open-sourced software licensed under the [MIT license](LICENSE.md).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance51

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity27

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

351d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7b2829734c47c8c4ac9e07dae07b808a5c8cc226f2ccf82a8cf8fc446067d0f1?d=identicon)[nigus-abate](/maintainers/nigus-abate)

---

Top Contributors

[![nigus-abate](https://avatars.githubusercontent.com/u/213416851?v=4)](https://github.com/nigus-abate "nigus-abate (26 commits)")

---

Tags

laraveluipermissionstarterrolepermify

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/nigus-abate-laravel-permify/health.svg)

```
[![Health](https://phpackages.com/badges/nigus-abate-laravel-permify/health.svg)](https://phpackages.com/packages/nigus-abate-laravel-permify)
```

###  Alternatives

[laravel/ui

Laravel UI utilities and presets.

2.7k134.9M601](/packages/laravel-ui)[laravel/breeze

Minimal Laravel authentication scaffolding with Blade and Tailwind.

3.0k31.3M148](/packages/laravel-breeze)[casbin/laravel-authz

An authorization library that supports access control models like ACL, RBAC, ABAC in Laravel.

324339.9k4](/packages/casbin-laravel-authz)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)

PHPackages © 2026

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