A Filament plugin for Laravel Authentication Log package.
This package provides a Filament resource and a relation manager for Laravel Authentication Log.
- PHP 8.1+
- Filament 3
Filament | Laravel | Filament Authentication Log |
---|---|---|
2.x | 9.x/10.x | 2.x |
3.x | 10.x/11.x | 3.0.x/3.1.x |
You can install the plugin via Composer:
composer require tapp/filament-authentication-log:"^3.1"
Follow the configuration instruction for laravel-authentication-log
- Publish and run the migrations
- Add the
AuthenticationLoggable
andNotifiable
traits to yourUser
model
Note For Filament 2.x check the 2.x branch
You can publish the translations files with:
php artisan vendor:publish --tag="filament-authentication-log-translations"
You can publish the config file with:
php artisan vendor:publish --tag="filament-authentication-log-config"
Add this plugin to a panel in the plugins()
method.
E.g., in app/Providers/Filament/AdminPanelProvider.php
:
use Tapp\FilamentAuthenticationLog\FilamentAuthenticationLogPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugins([
FilamentAuthenticationLogPlugin::make()
// ->panelName('admin') // Optional: specify the panel name if needed
]);
}
That's it! Now you can see the Authentication Log resource on left sidebar.
This customization ->panelName('admin')
allows for better organization if you have multiple panels, such as Developer and Admin panels, where the FilamentAuthenticationLogPlugin
is used in one panel but the user resource is available only in another panel.
Add the Tapp\FilamentAuthenticationLog\RelationManagers\
to the getRelations()
method on the Filament resource where the model uses the AuthenticationLoggable
trait.
E.g. in App\Filament\Resources\UserResource.php
:
use Tapp\FilamentAuthenticationLog\RelationManagers\AuthenticationLogsRelationManager;
public static function getRelations(): array
{
return [
AuthenticationLogsRelationManager::class,
// ...
];
}
To display the actual name of the authenticatable user instead of the class name, you can configure the plugin to show a specific field. By default, it will use the name
field if available. If your model does not have a name
column, you can add a custom attribute:
In your model:
public function getNameAttribute(): string
{
return trim($this->first_name . ' ' . $this->last_name);
}
To specify a custom field to display for the authenticatable user, update the config/filament-authentication-log.php
configuration file:
'authenticatable' => [
'field-to-display' => 'name', // Change 'name' to your custom field if needed
],