for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php namespace Arcanedev\LaravelImpersonator\Traits;
use Arcanedev\LaravelImpersonator\Contracts\Impersonatable;
/**
* Trait HasImpersonation
*
* @package Arcanedev\LaravelImpersonator\Traits
* @author ARCANEDEV <[email protected]>
*/
trait CanImpersonate
{
/* -----------------------------------------------------------------
| Main Methods
| -----------------------------------------------------------------
* Impersonate the given user.
* @param \Arcanedev\LaravelImpersonator\Contracts\Impersonatable $impersonated
* @return bool
public function impersonate(Impersonatable $impersonated)
/** @var \Arcanedev\LaravelImpersonator\Contracts\Impersonatable $this */
return impersonator()->start($this, $impersonated);
}
* Stop the impersonation.
public function stopImpersonation()
return $this->isImpersonated() ? impersonator()->stop() : false;
| Check Methods
* Check if the current modal can impersonate other models.
abstract public function canImpersonate();
* Check if the current model can be impersonated.
abstract public function canBeImpersonated();
* Check if impersonation is ongoing.
public function isImpersonated()
return impersonator()->isImpersonating();