New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

jeffersongoncalves/filament-user

Filament User model, UserResource, status-aware Login page and plugin for the jeffersongoncalves starter kits.
3,597 2
Install
composer require jeffersongoncalves/filament-user
Latest Version:3.2.0
PHP:^8.3
Laravel:12 · 13
License:MIT
Last Updated:Oct 28, 2026
Links: GitHub  ·  Packagist
Maintainer: jeffersongoncalves

Filament User

Filament User

Filament User model, UserResource, status-aware Login page and plugin used by the jeffersongoncalves starter kits. Built on laravel-user.

Compatibility

Branch Filament Package version
1.x 3.x ^1.0
2.x 4.x ^2.0
3.x 5.x ^3.0

Installation

composer require jeffersongoncalves/filament-user

Usage

Model

namespace App\Models;

use JeffersonGoncalves\Filament\User\Models\User as BaseUser;

class User extends BaseUser
{
    // add traits (e.g. HasTeamsFilament), relations or overrides here
}

It implements FilamentUser and HasAvatar (reads the filament-edit-profile.avatar_column).

Panel access

By default a user can enter every panel except admin, and only while status = true. Filament re-checks this on every request, so deactivating a user also ends their open sessions and remember-me logins.

Tune the rules in the config file:

php artisan vendor:publish --tag="filament-user-config"
// config/filament-user.php
'panel_access' => [
    'denied_panels' => ['admin'],
    'require_active_status' => true,
],

Or replace the check entirely from a service provider (e.g. AppServiceProvider::boot()):

use Filament\Panel;
use JeffersonGoncalves\Filament\User\Facades\PanelAccess;

PanelAccess::using(fn (User $user, Panel $panel): bool => $user->status && $panel->getId() === 'app');

Panel

use JeffersonGoncalves\Filament\User\Pages\Auth\Login;
use JeffersonGoncalves\Filament\User\UserPlugin;

// Panel where users sign in: only active users (status = true) can log in
$panel->login(Login::class);

// Panel that manages users (usually the admin panel)
$panel->plugins([
    UserPlugin::make()
        ->impersonate(guard: 'web', redirectTo: '/app'),
]);

The resource uses the model from auth.providers.users.model, so it always works with App\Models\User.

Other plugin options:

UserPlugin::make()
    ->withoutImpersonation()       // hide the impersonate action (table, View and Edit pages)
    ->navigationGroup('Access');   // custom navigation group; false = no group

Translations

Labels ship in 19 locales (ar, az, de, en, es, fa, fr, hi, it, ja, nl, pl, pt, pt_BR, ru, tr, uk, uz, zh_CN) under the filament-user::resources/user.* namespace (navigation.*, fields.*, actions.*). To change them, publish and edit:

php artisan vendor:publish --tag="filament-user-translations"

Extending

Extend the resource and hand it to the plugin. The resource pages follow the plugin, so there is nothing else to copy:

use JeffersonGoncalves\Filament\User\Resources\Users\Schemas\UserForm;
use JeffersonGoncalves\Filament\User\Resources\Users\UserResource;

class MyUserForm extends UserForm
{
    public static function components(): array
    {
        return [
            ...parent::components(),
            TextInput::make('phone'),
        ];
    }
}

class MyUserResource extends UserResource
{
    public static function form(Schema $schema): Schema
    {
        return MyUserForm::configure($schema);
    }
}

UserPlugin::make()->resource(MyUserResource::class);

UserInfolist::components() and UsersTable::columns() can be extended the same way.

Testing

composer test

Changelog

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

Credits

License

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

Related Packages

jeffersongoncalves/laravel-user

Base authenticatable User model, migration, factory and observer shared by the j...

3,593 1
jeffersongoncalves/filament-admin

Filament Admin model, AdminResource, status-aware Login page and plugin for a se...

3,416 2
fauzie811/filament-list-entry

List Entry for Filament Infolist

24,231 15
thiktak/filament-simple-list-entry

Simple List Entry for Infolist

6,782 23

Version History

Version Released PHP License
3.2.0 ^8.3 MIT
3.1.0 ^8.3 MIT
3.0.0 ^8.3 MIT
2.2.0 ^8.3 MIT
2.1.0 ^8.3 MIT