rawilk / profile-filament-plugin

Profile & MFA starter kit for filament.
https://randallwilk.dev/docs/profile-filament-plugin
MIT License
27 stars 7 forks source link
filamentphp laravel mfa totp user-profile webauthn

Filament Profile

Warning: While the plugin should be production ready, it is still in a pre-release stage. API and functionality are subject to change without a major version bump until a stable release is made.

Latest Version on Packagist Tests Total Downloads PHP from Packagist License

social image

This package provides a Filament plugin for a user profile. The plugin acts as a starting point for your user profile, and provides multi-factor authentication, password management, session management, and more. A lot of the boilerplate code that is required for these functionalities is taken care of by this plugin.

Although this package is highly opinionated in how it handles many things, it is still flexible and customizable in most areas.

Installation

You can install the package via composer:

composer require rawilk/profile-filament-plugin

You can publish and run the migrations with:

php artisan vendor:publish --tag="profile-filament-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="profile-filament-config"

You can view the default configuration here: https://github.com/rawilk/profile-filament-plugin/blob/main/config/profile-filament.php

Usage

In a panel service provider, register the plugin:

use Rawilk\ProfileFilament\ProfileFilamentPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                ProfileFilamentPlugin::make()
            );
    }
}

Here is what the base profile page will look like without any configuration:

base profile page

Documentation

For comprehensive documentation, please visit: https://randallwilk.dev/docs/profile-filament-plugin

Scripts

Setup

For convenience, you can run the setup bin script for easy installation for local development.

./bin/setup.sh

Formatting

Although formatting is done automatically via workflow, you can format php code locally before committing with a composer script:

composer format

Release

When a new release is ready, the ./bin/release.sh script should be run. This script will compile the front-end assets provided by the package.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

Please review my security policy on how to report security vulnerabilities.

Credits

Agent service class for browser/device detection is derived from:

Alternatives

License

The MIT License (MIT). Please see License File for more information.