From f337e63ef70f5f3210577e494e04acf642570ef9 Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 25 Oct 2016 18:59:39 +0200 Subject: * clearing saved user auth key on logout --- app/frontend/facades/UserFacade.php | 9 +++++++++ app/frontend/user/AuthManager.php | 22 ++++++++++++++++++++++ app/frontend/user/config.xml | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 app/frontend/user/AuthManager.php diff --git a/app/frontend/facades/UserFacade.php b/app/frontend/facades/UserFacade.php index a976af2..0bc5863 100644 --- a/app/frontend/facades/UserFacade.php +++ b/app/frontend/facades/UserFacade.php @@ -160,6 +160,15 @@ class UserFacade extends Facade { } } + public function clearUserAuthKey(DbUser $user) { + if (!$user->IsGuest && $user->DbRecord && $user->AuthKey) { + $keyRecord = UserAuthKey::finder()->findByAuthKey($user->AuthKey); + if ($keyRecord && $keyRecord->UserID == $user->DbRecord->ID) { + $keyRecord->delete(); + } + } + } + } ?> diff --git a/app/frontend/user/AuthManager.php b/app/frontend/user/AuthManager.php new file mode 100644 index 0000000..54f92e4 --- /dev/null +++ b/app/frontend/user/AuthManager.php @@ -0,0 +1,22 @@ +Application->Request->Cookies[$this->UserKey]; + if ($cookie) { + $user = $this->UserManager->getUserFromCookie($cookie); + if ($user && $user->Name === $this->Application->User->Name) { + UserFacade::getInstance()->clearUserAuthKey($user); + } + } + parent::logout(); + } + +} + +?> diff --git a/app/frontend/user/config.xml b/app/frontend/user/config.xml index d4ca867..103b007 100644 --- a/app/frontend/user/config.xml +++ b/app/frontend/user/config.xml @@ -1,7 +1,7 @@ -