From 655b273060f629b6d471b78abc4102f3d4c0cf2b Mon Sep 17 00:00:00 2001 From: Aleksander Meloch Date: Sat, 15 Jul 2017 22:15:46 +0200 Subject: [PATCH] Improve logout events --- src/Controller/Traits/LoginTrait.php | 6 ++++-- tests/TestCase/Controller/Traits/LoginTraitTest.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Controller/Traits/LoginTrait.php b/src/Controller/Traits/LoginTrait.php index 3a813c5cc..7ead3f08d 100644 --- a/src/Controller/Traits/LoginTrait.php +++ b/src/Controller/Traits/LoginTrait.php @@ -352,7 +352,9 @@ protected function _afterIdentifyUser($user, $socialLogin = false, $googleAuthen */ public function logout() { - $eventBefore = $this->dispatchEvent(UsersAuthComponent::EVENT_BEFORE_LOGOUT); + $user = (array)$this->Auth->user(); + + $eventBefore = $this->dispatchEvent(UsersAuthComponent::EVENT_BEFORE_LOGOUT, ['user' => $user]); if (is_array($eventBefore->result)) { return $this->redirect($eventBefore->result); } @@ -360,7 +362,7 @@ public function logout() $this->request->session()->destroy(); $this->Flash->success(__d('CakeDC/Users', 'You\'ve successfully logged out')); - $eventAfter = $this->dispatchEvent(UsersAuthComponent::EVENT_AFTER_LOGOUT); + $eventAfter = $this->dispatchEvent(UsersAuthComponent::EVENT_AFTER_LOGOUT, ['user' => $user]); if (is_array($eventAfter->result)) { return $this->redirect($eventAfter->result); } diff --git a/tests/TestCase/Controller/Traits/LoginTraitTest.php b/tests/TestCase/Controller/Traits/LoginTraitTest.php index 97031f7a3..0550b2711 100644 --- a/tests/TestCase/Controller/Traits/LoginTraitTest.php +++ b/tests/TestCase/Controller/Traits/LoginTraitTest.php @@ -253,7 +253,7 @@ public function testLogout() { $this->_mockDispatchEvent(new Event('event')); $this->Trait->Auth = $this->getMockBuilder('Cake\Controller\Component\AuthComponent') - ->setMethods(['logout']) + ->setMethods(['logout', 'user']) ->disableOriginalConstructor() ->getMock(); $redirectLogoutOK = '/';