Shows how to use spatie/laravel-permission in Filament with auto-role assignment on registration and Policy-based resource authorization.
The registration form is enabled in AdminPanelProvider
.
app/Providers/Filament/AdminPanelProvider.php:
class AdminPanelProvider extends PanelProvider{ public function panel(Panel $panel): Panel { return $panel ->default() ->id('admin') ->path('admin') ->login() ->registration() // here we enable registration feature // ... }}
The spatie/laravel-permission package is used for the roles and permissions. Two roles are seeded: admin and user.
When a new user registers to the application, the user role is assigned using the closure Eloquent event created
.