Download the PHP package bbs-lab/nova-permission without Composer
On this page you can find all versions of the php package bbs-lab/nova-permission. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package nova-permission
Laravel Nova permission tool
Based on spatie/permission, this tool gives you ability to manage roles and permission. The tool provides permission builder.
Contents
- Installation
- Usage
- Generate permissions
- Protect resources
- Super admin
- Changelog
- Security
- Contributing
- Credits
- License
Installation
To get started, you will need to install the following dependencies
The service provider will automatically get registered. Or you may manually add the service provider in your config/app.php
file:
You should publish the migrations with:
You can publish the config files with:
This will publish config/permission.php
and config/nova-permission.php
files with the following contents:
After the migration has been published you can create the role and permission tables by running the migrations :
Usage
You must register the tool with Nova. This is typically done in the tools
method of the NovaServiceProvider
:
Generate permissions
The tool allow to generate resource permissions. Your resources must implement BBSLab\NovaPermission\Contracts\HasAbilities
and define the public static $permissionsForAbilities
variable :
This configuration will generate the following permission:
You may generate permission from the permission builder tool with the Generate permissions
button or the Artisan command:
Protect resources
You may use authorization policies and extend the provided BBSLab\NovaPermission\Policies\Policy
class
[!IMPORTANT]
You must create a policy for each model you want to protect else the default permissions will be applied!
The base Policy
class takes care of the following actions for you :
- viewAny
- view
- create
- update
- replicate
- delete
- restore
- forceDelete
You are free to add or update methods.
Sometimes you may want to protect a particular resource. First the model must implement the BBSLab\NovaPermission\Contracts\HasAuthorizations
interface and use the BBSLab\NovaPermission\Traits\Authorizations
trait :
You need to add the resource in the config/nova-permission.php
:
You can now create a permission for a specific post:
[!TIP] If you want to have custom permissions for each model you create you can create an observer to create the permission automatically.
And update the post policy:
[!TIP] If you create a custom permission for a model which is named like a Nova action (e.g.
view
) you don't need to update your policy.
Super admin
You may want to create a role as super admin. You can do that using the override_permission
attribute.
You may prevent override_permission
attribute modification by using the BBSLab\NovaPermission\Resources\Role::canSeeOverridePermmission
method:
Changelog
Please see CHANGELOG for more information what has changed recently.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
- Mikaël Popowicz
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of nova-permission with dependencies
laravel/nova Version ^4.0 || ^5.0
nova-kit/nova-packages-tool Version ^1.3.1
spatie/laravel-package-tools Version ^1.16
spatie/laravel-permission Version ^6.0