From 5a386acf202193c87e8a63e95205d9b2a68614eb Mon Sep 17 00:00:00 2001 From: Georges KABBOUCHI Date: Wed, 22 May 2019 20:50:52 +0300 Subject: [PATCH] fixes #50 --- config/nova-impersonate.php | 4 ++++ src/Http/Controllers/ImpersonateController.php | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/config/nova-impersonate.php b/config/nova-impersonate.php index a0229e1..9aafdae 100644 --- a/config/nova-impersonate.php +++ b/config/nova-impersonate.php @@ -35,4 +35,8 @@ */ 'leave' => 'auth', ], + /** + * Leave impersonate before impersonating a user + */ + 'leave_before_impersonate' => false, ]; diff --git a/src/Http/Controllers/ImpersonateController.php b/src/Http/Controllers/ImpersonateController.php index a7de81b..d038e99 100644 --- a/src/Http/Controllers/ImpersonateController.php +++ b/src/Http/Controllers/ImpersonateController.php @@ -39,6 +39,14 @@ public function take(Request $request, $id) $this->recordAction($request->user()->getKey(), $user_to_impersonate, 'Impersonate'); } + if (config('nova-impersonate.leave_before_impersonate') && $this->manager->isImpersonating()) { + if (config('nova-impersonate.actionable')) { + $this->recordAction($this->manager->getImpersonatorId(), auth()->user(), 'Leave Impersonation'); + } + + $this->manager->leave(); + } + $this->manager->take($request->user(), $user_to_impersonate); $redirectBack = config('nova-impersonate.redirect_back');