63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Laravel\Nova\Contracts;
|
|
|
|
use Illuminate\Contracts\Auth\Authenticatable;
|
|
use Illuminate\Contracts\Auth\StatefulGuard;
|
|
use Illuminate\Http\Request;
|
|
|
|
interface ImpersonatesUsers
|
|
{
|
|
/**
|
|
* Start impersonating a user.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Illuminate\Contracts\Auth\StatefulGuard $guard
|
|
* @param \Illuminate\Contracts\Auth\Authenticatable $user
|
|
* @return bool
|
|
*/
|
|
public function impersonate(Request $request, StatefulGuard $guard, Authenticatable $user);
|
|
|
|
/**
|
|
* Stop impersonating the currently impersonated user and revert to the original session.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Illuminate\Contracts\Auth\StatefulGuard $guard
|
|
* @param string $userModel
|
|
* @return bool
|
|
*/
|
|
public function stopImpersonating(Request $request, StatefulGuard $guard, string $userModel);
|
|
|
|
/**
|
|
* Determine if a user is currently being impersonated.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return bool
|
|
*/
|
|
public function impersonating(Request $request);
|
|
|
|
/**
|
|
* Remove any impersonation data from the session.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return void
|
|
*/
|
|
public function flushImpersonationData(Request $request);
|
|
|
|
/**
|
|
* Redirect an admin after starting impersonation.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\JsonResponse
|
|
*/
|
|
public function redirectAfterStartingImpersonation(Request $request);
|
|
|
|
/**
|
|
* Redirect an admin after finishing impersonation.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\JsonResponse
|
|
*/
|
|
public function redirectAfterStoppingImpersonation(Request $request);
|
|
}
|