better-futures-studio / filament-local-logins
This is my package filament-local-logins
Fund package maintenance!
better-futures-studio
Installs: 10 847
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 4
Open Issues: 1
Requires
- php: ^8.1
- filament/filament: ^3.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8|^8.0
- orchestra/testbench: ^8.8|^9.0
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
README
This package allows you to log in locally using pre-set email addresses, making it easy to log into one or multiple development user accounts. It can be used in an admin panel or multiple panels.
NOTE: You must have created the user accounts in order to use them with the login buttons, this package doesn't support the creation of user accounts.
Output
Requirements
This package requires the following:
PHP:^8.1
Filament:^3.0
Installation
You can install the package via composer:
composer require better-futures-studio/filament-local-logins
You can publish the config file with:
php artisan vendor:publish --tag="filament-local-logins-config"
This is the contents of the published config file:
use BetterFuturesStudio\FilamentLocalLogins\Filament\Pages\Auth\LoginPage; return [ 'panels' => [ 'admin' => [ 'enabled' => env('ADMIN_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('ADMIN_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], ], ];
You can use it in multiple panels so if you want to add a configuration for a new panel, you can add a new config key with the panel id. For example, you can add user
panel configuration like this:
use BetterFuturesStudio\FilamentLocalLogins\Filament\Pages\Auth\LoginPage; return [ 'panels' => [ 'admin' => [ 'enabled' => env('ADMIN_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('ADMIN_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], 'user' => [ 'enabled' => env('USER_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('USER_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], ], ];
Optionally, you can publish the views using
php artisan vendor:publish --tag="filament-local-logins-views"
Usage
Set the ADMIN_PANEL_LOCAL_LOGIN_EMAILS
in your .env file to use this package.
In your .env file, add the following:
ADMIN_PANEL_LOCAL_LOGIN_EMAILS="free-user@example.com,paid-user@example.com" # Provide a comma-separated list of emails that can log in locally
If you wish to customize the default login page, you can modify the 'login_page' => LoginPage::class,
line to point to your desired class. After changing this, you will need to use the HasLocalLogins
trait in your custom login page class.
use BetterFuturesStudio\FilamentLocalLogins\Concerns\HasLocalLogins; use Filament\Pages\Auth\Login; class YourCustomLoginPage extends Login { use HasLocalLogins; }
In your Filament panel provider, typically AdminPanelProvider
, you need to register the plugin:
use BetterFuturesStudio\FilamentLocalLogins\LocalLogins; ... $panel->plugin(new LocalLogins());
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.