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:
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!
After more than a decade of being a full-time software developer, working with some of the largest companies in the world, I realized something profound - my true passion lies in sharing knowledge and empowering others to succeed.