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: 4 months ago
JSON representation

Filament plugin that makes it easy to impersonate your users

Awesome Lists containing this project

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)
[![Total Downloads](https://img.shields.io/packagist/dt/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.

## 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\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 non-filament blade layout(s)

If your app is entirely contained within Filament, you're already done! The banner gets registered automatically.

However, if you impersonate a user and then visit non-Filament pages or layouts, you'll be stuck. In those cases, you'll need to display a notice in your app whenever you are impersonating another user.

You can do that by adding `` to your master layout(s) before the closing `