| Package Data | |
|---|---|
| Maintainer Username: | vyuldashev |
| Package Create Date: | 2018-08-23 |
| Package Last Update: | 2024-07-24 |
| Home Page: | https://novapackages.com/packages/vyuldashev/nova-permission |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-11-19 03:03:46 |
| Package Statistics | |
|---|---|
| Total Downloads: | 2,438,791 |
| Monthly Downloads: | 23,833 |
| Daily Downloads: | 840 |
| Total Stars: | 426 |
| Total Watchers: | 15 |
| Total Forks: | 222 |
| Total Open Issues: | 44 |

You can install the package in to a Laravel app that uses Nova via composer:
composer require vyuldashev/nova-permission
Go through the Installation section in order to setup laravel-permission.
Next up, you must register the tool with Nova. This is typically done in the tools method of the NovaServiceProvider.
// in app/Providers/NovaServiceProvider.php
// ...
public function tools()
{
return [
// ...
\Vyuldashev\NovaPermission\NovaPermissionTool::make(),
];
}
Next, add middleware to config/nova.php
// in config/nova.php
'middleware' => [
// ...
\Vyuldashev\NovaPermission\ForgetCachedPermissions::class,
],
Finally, add MorphToMany fields to you app/Nova/User resource:
// ...
use Laravel\Nova\Fields\MorphToMany;
public function fields(Request $request)
{
return [
// ...
MorphToMany::make('Roles', 'roles', \Vyuldashev\NovaPermission\Role::class),
MorphToMany::make('Permissions', 'permissions', \Vyuldashev\NovaPermission\Permission::class),
];
}
If you want to use custom resource classes you can define them when you register a tool:
// in app/Providers/NovaServiceProvider.php
// ...
public function tools()
{
return [
// ...
\Vyuldashev\NovaPermission\NovaPermissionTool::make()
->roleResource(CustomRole::class)
->permissionResource(CustomPermission::class),
];
}
A new menu item called "Permissions & Roles" will appear in your Nova app after installing this package.