rawilk / profile-filament-plugin
Profile & MFA starter kit for filament.
Fund package maintenance!
rawilk
Installs: 1 989
Dependents: 0
Suggesters: 0
Security: 0
Stars: 27
Watchers: 3
Forks: 7
Open Issues: 4
Requires
- php: ^8.2|^8.3
- bacon/bacon-qr-code: ^3.0
- filament/filament: ^3.2.96
- illuminate/contracts: ^11.23
- mobiledetect/mobiledetectlib: ^4.8
- pragmarx/google2fa: ^8.0
- rawilk/filament-password-input: ^2.0
- spatie/laravel-package-tools: ^1.14
- web-auth/webauthn-lib: ^5.0
Requires (Dev)
- laravel/pint: ^1.0
- livewire/livewire: ^3.1.0
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- pestphp/pest-plugin-livewire: ^3.0
- sinnbeck/laravel-dom-assertions: ^1.3
- spatie/laravel-ray: ^1.31
README
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.
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:
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
- Randall Wilk
- All Contributors
- livewire/livewire - For some JS code snippets
- laragear/webauthn - For inspiration on some webauthn concepts
- claudiodekker/laravel-auth - For some inspirations on multi-factor and sudo mode concepts
- protonemedia/laravel-verify-new-email - For inspirations on pending email change functionalities
Agent
service class for browser/device detection is derived from:
Alternatives
License
The MIT License (MIT). Please see License File for more information.