Skip to content

Filament plugin to change users without having to leave the panel

License

Notifications You must be signed in to change notification settings

rmsramos/change-user

Repository files navigation

Filament Change User

Latest Version on Packagist Fix PHP Code Styling Total Downloads

Filament plugin to change users without having to leave the panel

Screenshot of Application Feature

Supported languages

Change User Plugin is translated for :

  • 🇧🇷 Brazilian Portuguese
  • 🇺🇸 English
  • 🇪🇸 Spanish

Installation

You can install the package via composer:

composer require rmsramos/change-user

Optionally, you can publish the views using

php artisan vendor:publish --tag="change-user-views"

Usage

In your Panel ServiceProvider (App\Providers\Filament) active the plugin

Add the Rmsramos\ChangeUser\ChangeUserPlugin to your panel config

use Rmsramos\ChangeUser\ChangeUserPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ChangeUserPlugin::make(),
        ]);
}

If you would like to prevent certain users from accessing the change user, you should add a showButton() callback in the ChangeUserPlugin chain.

use Rmsramos\ChangeUser\ChangeUserPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ChangeUserPlugin::make()
                ->showButton(fn () => auth()->user()->id === 1),
        ]);
}

You can swap out the modal heading used by updating the setModalHeading() value.

use Rmsramos\ChangeUser\ChangeUserPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ChangeUserPlugin::make()
                ->setModalHeading('Another modal heading'),
        ]);
}

You can swap out the modal icon used by updating the setIcon() value.

use Rmsramos\ChangeUser\ChangeUserPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ChangeUserPlugin::make()
                ->setIcon('heroicon-o-finger-print'),
        ]);
}

Full configuration

use Rmsramos\ChangeUser\ChangeUserPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ChangeUserPlugin::make()
                ->showButton(fn () => auth()->user()->id === 1)
                ->setModalHeading('Another modal heading')
                ->setIcon('heroicon-o-finger-print'),
        ]);
}

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.

About

Filament plugin to change users without having to leave the panel

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages