PHPackages                             codexshaper/laravel-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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. codexshaper/laravel-permission

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

codexshaper/laravel-permission
==============================

Laravel Multiple Authentication

v1.7(3y ago)213427[23 PRs](https://github.com/Codexshaper/laravel-permission/pulls)MITPHP

Since Aug 31Pushed 3y ago3 watchersCompare

[ Source](https://github.com/Codexshaper/laravel-permission)[ Packagist](https://packagist.org/packages/codexshaper/laravel-permission)[ RSS](/packages/codexshaper-laravel-permission/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (10)DependenciesVersions (40)Used By (0)

laravel-permission
==================

[](#laravel-permission)

Laravel Multi Authentication

Installation video : [click here](https://www.youtube.com/watch?v=2ZmhpYwrGNA) or click below image

[![IMAGE ALT TEXT HERE](https://camo.githubusercontent.com/ad6c3357fa3716d4e4a293a7fdb0840e0230f6dae0e399c1a57c91cfe1057d7a/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f325a6d6870597772474e412f302e6a7067)](https://www.youtube.com/watch?v=2ZmhpYwrGNA)

Note : Before Install and use this package run below command
------------------------------------------------------------

[](#note--before-install-and-use-this-package-run-below-command)

Before Laravel version 6.0

```
php artisan make:auth

```

From Laravel Version 6.0

```
1. composer require laravel/ui
2. php artisan ui vue --auth
3. npm install
4. npm run dev

```

#### Install the Package

[](#install-the-package)

```
composer require codexshaper/laravel-permission

```

##### Publish Resource, Configs, Migration and Seeding Database in a single command

[](#publish-resource-configs-migration-and-seeding-database-in-a-single-command)

```
php artisan permission:install

```

##### Or Publish Resource, Configs, Migration and Seeding Database Manually

[](#or-publish-resource-configs-migration-and-seeding-database-manually)

1. Publish Configs

```
php artisan vendor:publish --tag=permission.config

```

2. Publish Seeds

```
php artisan vendor:publish --tag=permission.seeds

```

3. Migrate Database

```
php artisan migrate

```

4. Run composer dump autoload

```
composer dump-autoload

```

5. Seeding Database

```
php artisan db:seed --class=PermissionDatabaseSeeder

```

6. Add Routes

```
Route::group(['prefix' => config('permission.prefix'),'middleware'=>['role:admin']], function () {
    Permission::routes();
});

```

##### Import `use CodexShaper\Permission\Traits\HasRoles` or simply `use HasRoles` Trait into your `App\User` Model

[](#import-use-codexshaperpermissiontraitshasroles-or-simply-use-hasroles-trait-into-your-appuser-model)

```
namespace App;

use CodexShaper\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

```

##### Check Permission go to `/admin/laravel-permission`

[](#check-permission-go-to-adminlaravel-permission)

###### Install Demo

[](#install-demo)

```
php artisan permission:install:demo

```

##### Demo url `/admin/permissions`

[](#demo-url-adminpermissions)

###### Publish `Views`

[](#publish-views)

```
php artisan permission:publish:views

```

##### Publish `Resources`

[](#publish-resources)

```
php artisan permission:publish:resources

```

#### For Overriding Views and Resources, Change your config file `/config/permission.php`

[](#for-overriding-views-and-resources-change-your-config-file-configpermissionphp)

```
'resources_path' => 'resources/views/vendor/permissions/assets',
'views' => 'resources/views/vendor/permissions/views',

```

Permission
==========

[](#permission)

```
use CodexShaper\Permission\Models\Permission;

$permission = Permission::create([
	'name' 	=> 'Browse',
	'slug' 	=> slug('browse'),
	'created_at' => now(),
	'updated_at' => now(),
]);

```

#### Give Permission to Roles

[](#give-permission-to-roles)

```
// Create Role before set permission
// $roles = [role_slug_or_id] ex: ['admin',1,2,'author']
$permission->givePermissionToRoles( $roles );

```

#### Update permission roles

[](#update-permission-roles)

```
$role_ids = [1,3,5]
$permission->syncPermissionToRoles( $role_ids );

```

#### Delete permission roles

[](#delete-permission-roles)

```
// Delete specific Roles
$role_ids = [1,3,5];
$permission->revokePermissionsFromRoles( $role_ids );
// Delete all roles for current permission
$permission->revokePermissionsFromRoles();

```

Role
====

[](#role)

```
use CodexShaper\Permission\Models\Role;

$admin = Role::create([
	'name' 	=> 'Super Admin',
	'slug' 	=> 'admin',
	'created_at' => now(),
	'updated_at' => now(),
]);

```

#### Assign Permission

[](#assign-permission)

```
$admin->assignPermissions([
    'browse',
    'read',
    'edit',
    'add',
    'delete'
]);

```

#### Update Permission

[](#update-permission)

```
$permission_ids = [1,3,5]
$admin->syncPermissions( $permission_ids );

```

#### Delete permission

[](#delete-permission)

```
// Delete specific Permissions
$permission_ids = [1,3,5];
$admin->revokePermissions( $permission_ids );
// Delete all roles for current roles
$admin->revokePermissions();

```

#### Check Permission

[](#check-permission)

```
$admin->hasPermission( $permission_slug );

```

User
====

[](#user)

```
use App\User;

$user = new User;
$user->name = 'John Doe';
$user->email = 'john@gmail.com';
$user->password = Hash::make('password');
$user->save();
$user->assignRoles('admin');

```

#### Assign Roles into existing user

[](#assign-roles-into-existing-user)

```
$user = User::find(1);
$user->assignRoles('admin');

```

#### Assign Multiple roles

[](#assign-multiple-roles)

```
$user = User::find(1);
// Use pipe(|)
$user->assignRoles('admin|client|customer');
// Or use comma(,)
$user->assignRoles('admin,client,customer');
// Or use space
$user->assignRoles('admin client customer');
// Or Mixed
$user->assignRoles('admin client,customer|write');
// Pass custom separators
$separators =  ',.| ';
$user->assignRoles('admin client,customer|write', $separators);

```

#### Update Roles

[](#update-roles)

```
$role_ids = [1,2,3];
$user->syncRoles( $role_ids );

```

#### Delete Roles

[](#delete-roles)

```
// Delete specific Roles for current User
$role_ids = [1,3,5];
$user->revokeRoles( $role_ids );
// Delete all roles for current user
$user->revokeRoles();

```

#### Check Role

[](#check-role)

```
$user->hasRole( $role_slug );

```

Add Middleware on route
=======================

[](#add-middleware-on-route)

```
Route::group(['middleware'=>['role:admin']],function(){
	// Routes
});

```

View Directories
================

[](#view-directories)

```
@can('browse')
You Can Browse
@endcan

@role('admin')
You are admin
@endrole

@hasrole('admin')
You have admin Permission
@endhasrole

@haspermission('edit')
You have admin Permission
@endhaspermission

```

Authors
-------

[](#authors)

- **Md Abu Ahsan Basir** - *Main Developer &amp; Maintainer* - [github](https://github.com/maab16)
- **Mahabubul Alam** - *Main designer* - [github](https://github.com/mahabubul1)

See also the list of [contributors](https://github.com/laravel-menu-builder/contributors) who participated in this project.

License
-------

[](#license)

[![License](https://camo.githubusercontent.com/1e1cb7bae9fc55a01fc5443d26e358dc21c129253bcfa9841db85c4f25aa2ecf/687474703a2f2f696d672e736869656c64732e696f2f3a6c6963656e73652d6d69742d626c75652e7376673f7374796c653d666c61742d737175617265)](http://badges.mit-license.org)

- **[MIT license](http://opensource.org/licenses/mit-license.php)**
- Copyright 2019 © [CodexShaper](https://github.com/Codexshaper/laravel-permission/blob/master/LICENSE).

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 51.6% 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 ~75 days

Recently: every ~0 days

Total

16

Last Release

1365d ago

Major Versions

v0.9 → v1.02019-09-11

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/49456098?v=4)[CodexShaper, LLC](/maintainers/Codexshaper)[@Codexshaper](https://github.com/Codexshaper)

![](https://www.gravatar.com/avatar/58d4b44ba8a97ccad40c3c4acc36617e98573d324452878a1ca9b6688025e5fb?d=identicon)[maab16](/maintainers/maab16)

---

Top Contributors

[![Codexshaper](https://avatars.githubusercontent.com/u/49456098?v=4)](https://github.com/Codexshaper "Codexshaper (32 commits)")[![maab16](https://avatars.githubusercontent.com/u/20833514?v=4)](https://github.com/maab16 "maab16 (30 commits)")

---

Tags

frameworklaravelpermissionsrolesroles-permission-managementvuejs2

### Embed Badge

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

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

###  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)
