From 6feff0cebab20b3738bab239aa1f09b5c91d92ef Mon Sep 17 00:00:00 2001 From: Sandro Lutz Date: Wed, 1 Feb 2017 18:13:41 +0100 Subject: [PATCH] Add check if UserManager is of type PublicEmitter before calling preLogin hook Signed-off-by: Sandro Lutz --- core/Controller/LoginController.php | 4 +++- lib/private/User/Session.php | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php index 981e781472f..c53637aaedf 100644 --- a/core/Controller/LoginController.php +++ b/core/Controller/LoginController.php @@ -215,7 +215,9 @@ class LoginController extends Controller { return $this->generateRedirect($redirect_url); } - $this->userManager->emit('\OC\User', 'preLogin', array($user, $password)); + if ($this->manager instanceof PublicEmitter) { + $this->userManager->emit('\OC\User', 'preLogin', array($user, $password)); + } $originalUser = $user; // TODO: Add all the insane error handling diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index 7f7c8182baa..36bd45521cf 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -319,7 +319,9 @@ class Session implements IUserSession, Emitter { OC\Security\Bruteforce\Throttler $throttler) { $currentDelay = $throttler->sleepDelay($request->getRemoteAddress()); - $this->manager->emit('\OC\User', 'preLogin', array($user, $password)); + if ($this->manager instanceof PublicEmitter) { + $this->manager->emit('\OC\User', 'preLogin', array($user, $password)); + } $isTokenPassword = $this->isTokenPassword($password); if (!$isTokenPassword && $this->isTokenAuthEnforced()) {