Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 1.89 KB

README.md

File metadata and controls

60 lines (46 loc) · 1.89 KB

Laravel 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.

Screenshots

NovaRolesAndPermissions

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