shanerbaner82/panel-roles

Filament Panel Roles is an intuitive way to ensure all users of a specified panel within Filament v3 is assigned a role during registration and has a specified role using Laravel Middleware.

v0.0.3 2023-10-10 00:33 UTC

This package is auto-updated.

Last update: 2024-05-10 01:53:54 UTC


README

Filament Panel Roles

Filament Panel Roles

Filament Panel Roles is an intuitive way to ensure all users of a specified panel within Filament v3 is assigned a role during registration and has a specified role using Laravel Middleware.

Installation

  composer require shanerbaner82/panel-roles

Setup

Filament Panel Roles requires you to install Spatie's Laravel Permissions package. the minimum setup required is to:

  1. Install Spatie's package
  2. Add the RoleMiddleware to yourapp/Http/Kernel.php

Usage

Inside any of your Filament panels add the Panel Roles plugin and specify the role users will be assigned and must have in order to login.

use Shanerbaner82\PanelRoles\PanelRoles;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ... 
            ->plugin(PanelRoles::make()
                ->roleToAssign('developer')
                ->restrictedRoles(['admin', 'developer']),
            )
    }
}

Technically you do not need to chain the registration() function on your panel, but if you do when a user registers they will be assigned the provided role.

Bonus

Watch LaravelOnline on YouTube to see how this plugin was created and to learn more about Laravel and Filament!