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.
Laravel Nova 4
composer require brand3000/nova-roles-and-permissions
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
php artisan migrate
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, 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.
Go into the NovaServiceProvider.php file and add the next logic into the gate() function
Gate::define('viewNova', function ($user) {
return $user->role_admin;
});
php artisan db:seed --class=SuperAdminSeeder