PHP code example of mukulsmu / laravel-nova-permission

1. Go to this page and download the library: Download mukulsmu/laravel-nova-permission library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

mukulsmu / laravel-nova-permission example snippets


'providers' => [
    ...,
    Mukulsmu\LaravelNovaPermission\NovaPermissionServiceProvider::class,
]

// in app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        \Mukulsmu\LaravelNovaPermission\LaravelNovaPermission::make(),
    ];
}

use Laravel\Nova\Fields\MorphToMany;

public function fields(Request $request)
{
    return [
        // ...
        MorphToMany::make('Roles', 'roles', \Mukulsmu\LaravelNovaPermission\Role::class),
        MorphToMany::make('Permissions', 'permissions', \Mukulsmu\LaravelNovaPermission\Permission::class),
    ];
}

// in config/nova.php
'middleware' => [
	'web',
	Authenticate::class,
	DispatchServingNovaEvent::class,
	BootTools::class,
	Authorize::class,
	\Mukulsmu\LaravelNovaPermission\ForgetCachedPermissions::class,
],

php artisan vendor:publish --provider="Mukulsmu\LaravelNovaPermission\NovaPermissionServiceProvider"

// in app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        \Mukulsmu\LaravelNovaPermission\LaravelNovaPermission::make()
            ->roleResource(CustomRole::class)
            ->permissionResource(CustomPermission::class),
    ];
}

// in app/Nova/YourNovaResource.php

class YourNovaResource extends Resource
{
    use \Mukulsmu\LaravelNovaPermission\PermissionsBasedAuthTrait;

    public static $permissionsForAbilities = [
      'all' => 'manage products',
    ];
}

    public static $permissionsForAbilities = [
      'viewAny' => 'view products',
      'view' => 'view products',
      'create' => 'create products',
      'update' => 'update products',
      'delete' => 'delete products',
      'restore' => 'restore products',
      'forceDelete' => 'forceDelete products',
      'addAttribute' => 'add product attributes',
      'attachAttribute' => 'attach product attributes',
      'detachAttribute' => 'detach product attributes',
    ];