Invites by Tapp Network
CommunityInvite Users with a table action or a header action.
Author:
Tapp Network
Package health
Automated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Skipped: Dependabot or Renovate configured
- Skipped: Dependency update cooldown configured
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist).
- Passed: Commit and release recency — Active: no commit date available; last release 104 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.3supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Version Compatibility
- Installation
- Requirements
- Usage
- Notification Routing
- Customization
- Testing
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License
Provides an action to invite users from Filament users resource.
#Version Compatibility
| Filament | Filament Invite | Documentation |
|---|---|---|
| 4.x | 2.x | Check the docs |
| 3.x | 1.x | Current |
#Installation
You can install the package via Composer:
composer require tapp/filament-invite:"^1.0"
You can publish the config using:
php artisan filament-invite:install
#Requirements
- User model which implements password resets and email verification (Laravel defaults)
#Usage
Add invite action to a table
public static function table(Table $table): Table
{
return $table
->actions([
\Tapp\FilamentInvite\Tables\InviteAction::make(),
]);
}
Invite action outside of a table uses a different class
protected function getHeaderActions(): array
{
return [
\Tapp\FilamentInvite\Actions\InviteAction::make(),
];
}
#Notification Routing
The password reset URL can be customized or use the Filament's authentication system:
- Default: Uses Filament's built-in routing (respects panel's
passwordResetRouteSlugconfiguration) - Custom: Uses completely custom routes outside Filament's authentication system
// Get the appropriate panel
$panel = $this->filamentPanelId
? Filament::getPanel($this->filamentPanelId)
: Filament::getDefaultPanel();
if (empty(config('filament-invite.routes.reset'))) {
// Use Filament's built-in routing (respects panel's passwordResetRouteSlug configuration)
$url = $panel->getResetPasswordUrl($this->token, $notifiable, ['invite' => true]);
} else {
// Support both custom routes and full URLs for maximum flexibility
$customRoute = config('filament-invite.routes.reset');
// Check if it's a full URL (starts with http/https)
if (str_starts_with($customRoute, 'http')) {
// Use the full URL directly
$url = $customRoute . '?' . http_build_query([
'token' => $this->token,
'email' => $email,
'invite' => true,
]);
} else {
// Use as route name - determine base URL based on configuration
$routeUrl = route($customRoute, [
'token' => $this->token,
'email' => $email,
'invite' => true,
], false);
// Choose base URL: panel URL or app.url (for backward compatibility)
$usePanelUrl = config('filament-invite.use_panel_url', false);
$baseUrl = $usePanelUrl ? $panel->getUrl() : config('app.url');
$url = rtrim($baseUrl, '/') . '/' . ltrim($routeUrl, '/');
}
}
#Integration with Filament Panel Configuration
When using the default routing, the package automatically respects your panel's authentication configuration:
// In your panel configuration
use Filament\Panel;
public function panel(Panel $panel): Panel
{
return $panel
->passwordResetRouteSlug('custom-reset') // This will be used automatically
->passwordResetRequestRouteSlug('custom-request');
}
To use custom routing you have plenty of options:
#Option 1: Custom Route Name
'routes' => [
'reset' => 'your.custom.route.name',
],
#Option 2: Full URL (External System)
'routes' => [
'reset' => 'https://external-auth.example.com/reset-password',
],
#Option 3: Different Domain/Subdomain
'routes' => [
'reset' => 'https://auth.yourapp.com/password-reset',
],
The package automatically detects whether you're providing a route name or a full URL and handles the URL construction accordingly.
#URL Base Configuration
For custom routes, you can choose between using the panel's URL or the application's URL:
// config/filament-invite.php
return [
'routes' => [
'reset' => 'your.custom.route.name',
],
// URL Configuration
'use_panel_url' => false, // Default: false (uses app.url for backward compatibility)
];
Options:
'use_panel_url' => false(default): Usesconfig('app.url')- maintains backward compatibility'use_panel_url' => true: Uses$panel->getUrl()
#Customization
#Reset URL
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,
],
);
}
#Notification
implement the sendPasswordSetNotification method on the user model
public function sendPasswordSetNotification($token)
{
Notification::send($this, new SetPassword($token));
}
#Testing
composer test
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Contributing
Please see CONTRIBUTING for details.
#Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
From the same author
Country Code Field
A country code select field, filter, and table column.
Author:
Tapp Network
Social Share Action
Let your users easily share content via social media platforms, email, or using the native Web Share API all through a fully customizable action.
Author:
Tapp Network
Value Range Filter
A value range filter for Filament table builder.
Author:
Tapp Network
Mail Log
View outgoing mail in a resource.
Author:
Tapp Network
Featured Plugins
A selection of plugins curated by the Filament team
Compact Theme
A theme that makes data-heavy panels easier to scan by fitting more useful information on each screen.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Noir Theme
A theme that gives panels a focused, refined look with near-black surfaces, crisp actions, and restrained color.
Filament