From 3b1f4b337fda6d145546895d068a3b7d7331984a Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Tue, 30 Nov 2021 19:20:33 -0500 Subject: [PATCH] Fixing wrong messaging in make:auth about checking password in final steps --- src/Maker/MakeAuthenticator.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Maker/MakeAuthenticator.php b/src/Maker/MakeAuthenticator.php index cb3aaa678..8e9af4398 100644 --- a/src/Maker/MakeAuthenticator.php +++ b/src/Maker/MakeAuthenticator.php @@ -368,7 +368,8 @@ private function generateNextMessage(bool $securityYamlUpdated, string $authenti $nextTexts[] = sprintf('- Review %s::getUser() to make sure it matches your needs.', $authenticatorClass); } - if (!$this->userClassHasEncoder($securityData, $userClass)) { + // this only applies to Guard authentication AND if the user does not have a hasher configured + if (!$this->useSecurity52 && !$this->userClassHasEncoder($securityData, $userClass)) { $nextTexts[] = sprintf('- Check the user\'s password in %s::checkCredentials().', $authenticatorClass); } @@ -381,11 +382,11 @@ private function generateNextMessage(bool $securityYamlUpdated, string $authenti private function userClassHasEncoder(array $securityData, string $userClass): bool { $userNeedsEncoder = false; - if (isset($securityData['security']['encoders']) && $securityData['security']['encoders']) { - foreach ($securityData['security']['encoders'] as $userClassWithEncoder => $encoder) { - if ($userClass === $userClassWithEncoder || is_subclass_of($userClass, $userClassWithEncoder)) { - $userNeedsEncoder = true; - } + $hashersData = $securityData['security']['encoders'] ?? $securityData['security']['encoders'] ?? []; + + foreach ($hashersData as $userClassWithEncoder => $encoder) { + if ($userClass === $userClassWithEncoder || is_subclass_of($userClass, $userClassWithEncoder) || class_implements($userClass, $userClassWithEncoder)) { + $userNeedsEncoder = true; } }