A Laravel Nova field allows you to authenticate as your users.
Branch: master
Clone or download
Latest commit 03e8faa Feb 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Update nova-impersonate.php Dec 13, 2018
dist fixes #46 Feb 11, 2019
docs wip Sep 12, 2018
resources fixes #46 Feb 11, 2019
routes [Feature] Added support for custom middleware Nov 6, 2018
src fixes #43 Jan 23, 2019
.gitignore wip Sep 12, 2018
LICENSE.md wip Sep 11, 2018
README.md add event documentation Dec 30, 2018
composer.json wip Sep 11, 2018
mix-manifest.json wip Sep 12, 2018
package.json wip Sep 9, 2018
webpack.mix.js wip Sep 12, 2018


Nova Impersonate Field

Latest Version on Packagist Total Downloads

This field allows you to authenticate as your users.

screenshot1 screenshot2 screenshot3

Behind the scenes 404labfr/laravel-impersonate is used.


You can install the package in to a Laravel app that uses Nova via composer:

composer require kabbouchi/nova-impersonate


Add Impersonate::make($this) field in App\Nova\User.php


namespace App\Nova;

use KABBOUCHI\NovaImpersonate\Impersonate;


class User extends Resource
	public function fields(Request $request)
		return [


				->rules('required', 'max:255'),

				->rules('required', 'email', 'max:255')

				->creationRules('required', 'string', 'min:6')
				->updateRules('nullable', 'string', 'min:6'),

			Impersonate::make($this),  // <---
			// or
			    'hideText' => false,
			// or
			    'redirect_to' => '/custom-redirect-url'



Advanced Usage

By default all users can impersonate an user.
You need to add the method canImpersonate() to your user model:

     * @return bool
    public function canImpersonate()
        // For example
        return $this->is_admin == 1;

By default all users can be impersonated.
You need to add the method canBeImpersonated() to your user model to extend this behavior: Please make sure to pass instance Model or Nova Resource Impersonate::make($this) Impersonate::make($this->resource)

     * @return bool
    public function canBeImpersonated()
        // For example
        return $this->can_be_impersonated == 1;


You can hook onto the underlying package events

May be userful for things like setting session data

  • Lab404\Impersonate\Events\TakeImpersonation
  • Lab404\Impersonate\Events\LeaveImpersonation

You can optionally publish the config file with:

php artisan vendor:publish --tag=nova-impersonate-config

This is the default content of the config file published at config/nova-impersonate.php:


return [
	'enable_middleware' => true, // To inject the 'nova-impersonate::reverse' view in every route when impersonating 
	'redirect_back'     => true, // false (nova path), true or <url>
	'redirect_to'       => '/',
	'key_down'          => 'i', // Press `i` to impersonate user in details page
	'middleware'        => [
            'base' => 'web', // Middleware used for nova-impersonate routes
            'leave'  => 'auth', // Extra middleware used for leave route

You can publish and customize the nova-impersonate::reverse view

php artisan vendor:publish --tag=nova-impersonate-views


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