better-futures-studio/filament-local-logins

This is my package filament-local-logins

1.2.0 2024-04-14 10:52 UTC

This package is auto-updated.

Last update: 2024-11-08 17:46:16 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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

SCR-20240103-qijm.png

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.