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: about 1 month ago
JSON representation

Filament plugin that makes it easy to impersonate your users

Lists

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 action

Now 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 `