mirror of
https://github.com/archtechx/tenancy.git
synced 2026-03-22 07:54:04 +00:00
Instead of setting the 'tenancy_impersonating' session variable, store auth guard in 'tenancy_impersonation_guard'
Also make `stopImpersonating()` able to keep the user logged in.
This commit is contained in:
parent
37b2a91aa9
commit
4341fc5d08
2 changed files with 14 additions and 10 deletions
|
|
@ -61,9 +61,9 @@ class UserImpersonation implements Feature
|
|||
|
||||
Auth::guard($token->auth_guard)->loginUsingId($token->user_id, $token->remember);
|
||||
|
||||
$token->delete();
|
||||
session()->put('tenancy_impersonation_guard', $token->auth_guard);
|
||||
|
||||
session()->put('tenancy_impersonating', true);
|
||||
$token->delete();
|
||||
|
||||
return redirect($token->redirect_url);
|
||||
}
|
||||
|
|
@ -76,16 +76,20 @@ class UserImpersonation implements Feature
|
|||
|
||||
public static function isImpersonating(): bool
|
||||
{
|
||||
return session()->has('tenancy_impersonating');
|
||||
return session()->has('tenancy_impersonation_guard');
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout from the current domain and forget impersonation session.
|
||||
*/
|
||||
public static function stopImpersonating(): void
|
||||
public static function stopImpersonating(bool $logout = true): void
|
||||
{
|
||||
auth()->logout();
|
||||
if ($logout) {
|
||||
$guard = session()->get('tenancy_impersonation_guard');
|
||||
|
||||
session()->forget('tenancy_impersonating');
|
||||
auth($guard)->logout();
|
||||
}
|
||||
|
||||
session()->forget('tenancy_impersonation_guard');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue