Provides an action to invite users from Filament users resource.
| Filament | Filament Invite | Documentation |
|---|---|---|
| 4.x/5.x | 2.x | Current |
| 3.x | 1.x | Check the docs |
You can install the package via Composer:
composer require tapp/filament-invite:"^2.0"You can publish the config using:
php artisan filament-invite:installThe package attaches FilamentInvitePlugin to every panel while PanelRegistry is resolving (after your panel provider configures middleware, before Filament routes snapshot it). That puts InviteMiddleware on panel password-reset routes so invite links get the extended filament-invite.expire window — no panel provider changes required.
You may still register the plugin explicitly; duplicate registration is a no-op:
use Tapp\FilamentInvite\FilamentInvitePlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugin(FilamentInvitePlugin::make());
}- User model which implements password resets and email verification (Laravel defaults)
Add invite action to a table
public static function table(Table $table): Table
{
return $table
->recordActions([
\Tapp\FilamentInvite\Actions\InviteAction::make(),
\Tapp\FilamentInvite\Actions\CopyInviteLinkAction::make(),
]);
}Add invite action to header actions in your resource view or edit page (e.g. App\Filament\Resources\Users\Pages\EditUser.php or App\Filament\Resources\Users\Pages\ViewUser.php), as the
InviteAction resolves the user from the current record, which is available on edit and view pages.
protected function getHeaderActions(): array
{
return [
\Tapp\FilamentInvite\Actions\InviteAction::make(),
\Tapp\FilamentInvite\Actions\CopyInviteLinkAction::make(),
];
}Use CopyInviteLinkAction when you want to generate the same set-password URL the invite email would contain, show it in a modal, and copy it to the clipboard — without sending a notification. This is useful when the app has no mail driver configured (for example Laravel Cloud without a verified sending domain).
Opening the modal does not create a token. The admin clicks Generate link to mint the broker token and reveal the URL (the modal stays open for copying). Generating again invalidates any earlier invite link for that user, including emailed ones.
Email invite (InviteAction / InviteBulkAction) remains the default; add CopyInviteLinkAction only where you need the manual copy flow. Eligibility matches InviteAction (unverified users the admin can update). The link uses the same password-broker token, package reset route / getResetPasswordUrl() override, and invite=1 extended-expiry behavior as the email.
Add invite bulk action to table toolbar actions
use Filament\Actions\BulkActionGroup;
use Tapp\FilamentInvite\Actions\InviteBulkAction;
public static function table(Table $table): Table
{
return $table
->toolbarActions([
BulkActionGroup::make([
InviteBulkAction::make(),
]),
]);
}implement getResetPasswordUrl on the user model
public function getResetPasswordUrl(string $token, array $parameters = []): string
{
return URL::signedRoute(
'filament.admin.auth.password-reset.reset',
[
'email' => $this->email,
'token' => $token,
...$parameters,
],
);
}implement the sendPasswordSetNotification method on the user model
public function sendPasswordSetNotification($token)
{
Notification::send($this, new SetPassword($token));
}composer testPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.