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.
composer require shanerbaner82/panel-roles
Filament Panel Roles requires you to install Spatie's Laravel Permissions package. the minimum setup required is to:
- Install Spatie's package
- Add the RoleMiddleware to your
app/Http/Kernel.php
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.
Watch LaravelOnline on YouTube to see how this plugin was created and to learn more about Laravel and Filament!