banityt/laravel-impersonate is a Laravel package.
It currently has 3 GitHub stars and 468 downloads on Packagist (latest version v0.0.2).
Install it with composer require banityt/laravel-impersonate.
Discover more Laravel packages by banityt
or browse all Laravel packages to compare alternatives.
Last updated
Impersonate with multi auth guard support.
composer require banityt/laravel-impersonate
use BaniTo\Impersonate\Contracts\Impersonatable as ImpersonatableContract;
use BaniTo\Impersonate\Traits\Impersonatable as ImpersonatableTrait;
class User extends Authenticatable implements ImpersonatableContract
{
use ImpersonatableTrait;
//...
}
public function guardName()
{
return 'web'; // or any custom guard name specified in config/auth.php
}
public function canImpersonate() : bool
{
return Bouncer::can('users_impersonate');
}
public function canBeImpersonated() : bool
{
return !Bouncer::is('admin');
}
Through user model or facade
use Impersonate;
// Impersonate other user, can be another user with other guard
auth()->user()->impersonate($anotherUser);
Auth::user()->impersonate($otherGuardUser);
Impersonate::impersonate($impersonator, $beingImpersonated);
// Stop impersonating
auth()->user()->stopImpersonating();
Auth::user()->stopImpersonating();
Impersonate::stopImpersonating();
Check if user is impersonating
auth()->user()->isImpersonating();
Auth::user()->isImpersonating();
Impersonate::isImpersonating();
// blade example
@if (Impersonate::isImpersonating())
<a href="{{route('your.route.impersonate.stop')}}">{{__('Stop Impersonation')}}</a>
@endif