brand3000 / nova-roles-and-permissions
This package allows separating roles for admins and other types of users while stored in the same users table. Additionally, it provides functionality for managing permissions (reader/editor) for the admins of a project powered by Laravel Nova.
Installs: 32
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 5
Forks: 1
Open Issues: 0
pkg:composer/brand3000/nova-roles-and-permissions
README
This package allows separating roles for admins and other types of users while stored in the same users table. Additionally, it provides functionality for managing permissions (reader/editor) for the admins of a project powered by Laravel Nova.
Screenshots
Requirements
Laravel Nova 4
Installation
Install the package using composer
composer require brand3000/nova-roles-and-permissions
Publish the migration, models, resources, and policies
Be aware that the package will create/overwrite the next files:
- Models:
- app/Models/Admin.php
- app/Models/User.php
- Nova resources:
- app/Nova/Admin.php
- app/Nova/User.php
- Policies:
- app/Policies/AdminPolicy.php
- app/Policies/UserPolicy.php
- app/Policies/CorePermissions.php
php artisan vendor:publish --provider="Brand3000\NovaRolesAndPermissions\Publisher" --force
Run new migration
php artisan migrate
Set administrators
Go to your database, find the users table and choose administrators by setting the role_admin column into 1. Additionally, set the supar_admin column into 1 for those who are eligible. If you have different types of users in your project, feel free to add more role_ columns for future development.
During development
During development, you have to add all the resources you want to be managed into the array $booleanOptions of the fields() function in the app/Nova/Admin.php nova resource.
Before switching a project to the production state
Go into the NovaServiceProvider.php file and add the next logic into the gate() function
Gate::define('viewNova', function ($user) { return $user->role_admin; });
If you want to seed a default super admin, run the next command
php artisan db:seed --class=SuperAdminSeeder