for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Lab404\Impersonate\Models;
use Illuminate\Database\Eloquent\Model;
use Lab404\Impersonate\Services\ImpersonateManager;
trait Impersonate
{
/**
* Return true or false if the user can impersonate an other user.
*
* @param void
* @return bool
*/
public function canImpersonate()
return true;
}
* Return true or false if the user can be impersonate.
public function canBeImpersonated()
* Impersonate the given user.
* @param Model $user
* @param string|null $guardName
public function impersonate(Model $user, $guardName = null)
return app(ImpersonateManager::class)->take($this, $user, $guardName);
* Check if the current user is impersonated.
public function isImpersonated()
return app(ImpersonateManager::class)->isImpersonating();
* Leave the current impersonation.
public function leaveImpersonation()
if ($this->isImpersonated()) {
return app(ImpersonateManager::class)->leave();