User Manager
User Resource For FilamentPHP Admin Dashboard
Author:
Fady Mondy
Documentation
- Features
- Screenshots
- Installation
- Use Filament Shield
- Use Filament Impersonate
- Use Laravel Jetstream Teams
- Publish Resource
- Register User Relation Manager
- User Users Resource Hooks
- Custom Resource Classes
- Use Simple User Resource
- Use User Avatar
- Publish Assets
- Testing
- Code Style
- PHPStan
- Other Filament Packages

Manage your users with a highly customizable user resource for FilamentPHP with integration of filament-shield and filament-impersonate.
for filament v2 please use this repo
#Features
- Users Resource
- Allow To Publish User Resource
- Allow To Use Shield
- Allow To Use Impersonate
- Allow To Use Facade Class to custom the current user resource
- Integration with Laravel Jetstream teams
- custom User model from config file
- custom Team model from config file
- custom Role model from config file
- Allow User Avatars
- Laravel Jetsream user profile page
- Custom Register/Login Pages for Laravel Jetstream
- Add OTP Page to Register process
#Screenshots

#Installation
composer require tomatophp/filament-users
finally register the plugin on /app/Providers/Filament/AdminPanelProvider.php
->plugin(\TomatoPHP\FilamentUsers\FilamentUsersPlugin::make())
#Use Filament Shield
you can use the shield to protect your resource and allow user roles by install it first
composer require bezhansalleh/filament-shield
Add the Spatie\Permission\Traits\HasRoles trait to your User model(s):
use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
// ...
}
Publish the config file then setup your configuration:
->plugin(\BezhanSalleh\FilamentShield\FilamentShieldPlugin::make())
Now run the following command to install shield:
php artisan shield:setup
php artisan shield:super_admin
Now we can publish the package assets.
php artisan vendor:publish --tag="filament-users-config"
now on your filament-users.php config allow shield
/*
* User Filament Shield
*/
"shield" => true,
now clear your config
php artisan config:cache
php artisan optimize
for more information check the Filament Shield
#Use Filament Impersonate
now on your filament-users.php config allow shield
/*
* User Filament Impersonate
*/
"impersonate" => [
'enable' => true
],
now clear your config
php artisan config:cache
php artisan optimize
#Use Laravel Jetstream Teams
you can use the Laravel Jetstream Teams by install it first
composer require laravel/jetstream
after that just publish the migration and models
php artisan filament-users:teams
now you need to migrate the teams migration
php artisan migrate
now on your filament-users.php config allow shield
/*
* User Filament Teams
*/
"teams" => true,
now clear your config
php artisan config:cache
php artisan optimize
#Publish Resource
you can custom the resource by just extend it and then make ->useUserResource(false) or ->useTeamsResource(false) to the plugin
#Register User Relation Manager
you can register the user relation manager to your project
use TomatoPHP\FilamentUsers\Facades\FilamentUser;
public function boot()
{
FilamentUser::register([
\Filament\Resources\RelationManagers\RelationManager::make() // Replace with your custom relation manager
]);
}
#User Users Resource Hooks
we have add a lot of hooks to make it easy to attach actions, columns, filters, etc
#Table Columns
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Tables\UserTable;
public function boot()
{
UsersTable::register([
\Filament\Tables\Columns\TextColumn::make('something')
]);
}
#Table Actions
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Tables\UserActions;
public function boot()
{
UserActions::register([
\Filament\Tables\Actions\ReplicateAction::make()
]);
}
#Table Filters
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Tables\UserFilters;
public function boot()
{
UserFilters::register([
\Filament\Tables\Filters\SelectFilter::make('something')
]);
}
#Table Bulk Actions
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Tables\UserBulkActions;
public function boot()
{
UserBulkActions::register([
\Filament\Tables\BulkActions\DeleteAction::make()
]);
}
#From Components
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Schemas\UserForm;
public function boot()
{
UserForm::register([
\Filament\Forms\Components\TextInput::make('something')
]);
}
#Infolist Entries
use TomatoPHP\FilamentUsers\Filament\Resources\Users\Schemas\UserInfolist;
public function boot()
{
UserInfolist::register([
\Filament\Infolists\Components\TextEntry::make('something')
]);
}
#Custom Resource Classes
you can customize all resource classes to be any class you want with the same return from the config file
/**
* ---------------------------------------------
* Resource Building
* ---------------------------------------------
* if you want to use the resource custom class
*/
'resource' => [
'table' => [
'class' => \TomatoPHP\FilamentUsers\Resources\UserResource\Table\UserTable::class,
'filters' => \TomatoPHP\FilamentUsers\Resources\UserResource\Table\UserFilters::class,
'actions' => \TomatoPHP\FilamentUsers\Resources\UserResource\Table\UserActions::class,
'bulkActions' => \TomatoPHP\FilamentUsers\Resources\UserResource\Table\UserBulkActions::class,
],
'form' => [
'class' => \TomatoPHP\FilamentUsers\Resources\UserResource\Schemas\UserForm::class
],
'infolist' => [
'class' => \TomatoPHP\FilamentUsers\Resources\UserResource\Schemas\UserInfolist::class
]
]
#Use Simple User Resource
you can use the simple user resource by change on config, on your filament-users.php config allow simple
/**
* ---------------------------------------------
* Use Simple Resource
* ---------------------------------------------
* change the resource from pages to modals by allow simple resource.
*/
'simple' => true,
#Use User Avatar
you can use User Avatar by just add ->useAvatar() to the plugin
#Publish Assets
you can publish config file by use this command
php artisan vendor:publish --tag="filament-users-config"
you can publish languages file by use this command
php artisan vendor:publish --tag="filament-users-lang"
#Testing
if you like to run PEST testing just use this command
composer test
#Code Style
if you like to fix the code style just use this command
composer format
#PHPStan
if you like to check the code by PHPStan just use this command
composer analyse
#Other Filament Packages
Checkout our Awesome TomatoPHP
The author
From the same author
Discord Notifications
Send notifications to a Discord channel using the native FilamentPHP Notification Facade class
Author:
Fady Mondy
Tenancy Multi-database
Tenancy multi-database integration for FilamentPHP
Author:
Fady Mondy
Menu Generator
Menu view generator using view component
Author:
Fady Mondy
Translations Manager
Manage your translation with DB and cache, you can scan an collect translation strings like `trans()` and `__()`, and translate them using UI
Author:
Fady Mondy
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese