From 074de779c9b8ac277002d981c69219f8cfa20116 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Tue, 4 Apr 2023 09:26:42 +0200 Subject: [PATCH] fix: null password handling in entry control logic Signed-off-by: Richard Steinmetz --- lib/Compliance/Expiration.php | 2 +- lib/Compliance/IEntryControl.php | 2 +- lib/ComplianceService.php | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Compliance/Expiration.php b/lib/Compliance/Expiration.php index 6ffd675e..fd649afc 100644 --- a/lib/Compliance/Expiration.php +++ b/lib/Compliance/Expiration.php @@ -84,7 +84,7 @@ public function update(IUser $user, string $password): void { ); } - public function entryControl(IUser $user, string $password): void { + public function entryControl(IUser $user, ?string $password): void { if ($this->policyConfig->getExpiryInDays() !== 0 && $this->isLocalUser($user) && $this->isPasswordExpired($user) diff --git a/lib/Compliance/IEntryControl.php b/lib/Compliance/IEntryControl.php index 6571269f..a6d1fce7 100644 --- a/lib/Compliance/IEntryControl.php +++ b/lib/Compliance/IEntryControl.php @@ -32,5 +32,5 @@ interface IEntryControl { /** * @throws HintException */ - public function entryControl(IUser $user, string $password): void; + public function entryControl(IUser $user, ?string $password): void; } diff --git a/lib/ComplianceService.php b/lib/ComplianceService.php index d54defc0..f1663b73 100644 --- a/lib/ComplianceService.php +++ b/lib/ComplianceService.php @@ -87,9 +87,11 @@ public function audit(IUser $user, string $password) { * @throws LoginException */ //public function entryControl(IUser $user, string $password, bool $isTokenLogin) { - public function entryControl(string $loginName, string $password) { + public function entryControl(string $loginName, ?string $password) { $uid = $loginName; \OCP\Util::emitHook('\OCA\Files_Sharing\API\Server2Server', 'preLoginNameUsedAsUserName', ['uid' => &$uid]); + + /** @var IEntryControl $instance */ foreach ($this->getInstance(IEntryControl::class) as $instance) { try { $user = \OC::$server->getUserManager()->get($uid);