Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stechstudio/filament-impersonate
Filament plugin that makes it easy to impersonate your users
https://github.com/stechstudio/filament-impersonate
filament filamentphp impersonate impersonation laravel plugin
Last synced: 7 days ago
JSON representation
Filament plugin that makes it easy to impersonate your users
- Host: GitHub
- URL: https://github.com/stechstudio/filament-impersonate
- Owner: stechstudio
- Created: 2021-03-29T00:10:34.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-12-03T17:21:09.000Z (19 days ago)
- Last Synced: 2024-12-03T18:22:24.310Z (18 days ago)
- Topics: filament, filamentphp, impersonate, impersonation, laravel, plugin
- Language: PHP
- Homepage:
- Size: 69.3 KB
- Stars: 273
- Watchers: 10
- Forks: 56
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-filament - stechstudio/filament-impersonate - Impersonate another user out of Filament. (MISC)
README
# Filament Impersonate
[![Latest Version on Packagist](https://img.shields.io/packagist/v/stechstudio/filament-impersonate.svg?style=flat-square)](https://packagist.org/packages/stechstudio/filament-impersonate)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)This is a plugin for [Filament](https://filamentadmin.com/) that makes it easy to impersonate your users.
### Credit
This package uses [https://github.com/404labfr/laravel-impersonate](https://github.com/404labfr/laravel-impersonate) under the hood, and borrows heavily from [https://github.com/KABBOUCHI/nova-impersonate](https://github.com/KABBOUCHI/nova-impersonate).
## Installation
You know the drill:
```bash
composer require stechstudio/filament-impersonate
```## Quickstart
### 1. Add table action
First open the resource where you want the impersonate action to appear. This is generally going to be your `UserResource` class.
Go down to the `table` method. After defining the table columns, you want to add `Impersonate` as a new action for the table via `actions` method. Your class should look like this:
```php
namespace App\Filament\Resources;use Filament\Resources\Resource;
use STS\FilamentImpersonate\Tables\Actions\Impersonate;class UserResource extends Resource {
public static function table(Table $table)
{
return $table
->columns([
// ...
])
->actions([
Impersonate::make(), // <---
]);
}
```You can also define a `guard` and `redirectTo` for the action:
```php
Impersonate::make('impersonate')
->guard('another-guard')
->redirectTo(route('some.other.route'));
```
### 2. Add the page actionNow open the page where you would want the button to appear, this will commonly be `EditUser`;
Go to the `getActions` method and add the `Impersonate` page action here.
```php
record($this->getRecord()) // <--
];
}
}
```Note: you must pass the record in as seen in this example!
### 3. Add the banner to your blade layout
The only other step is to display a notice in your app whenever you are impersonating another user. Open up your master layout file and add `` before the closing `