diff --git a/Plugin/AccountManagementPlugin.php b/Plugin/AccountManagementPlugin.php new file mode 100644 index 0000000..3bebd04 --- /dev/null +++ b/Plugin/AccountManagementPlugin.php @@ -0,0 +1,100 @@ +eventManager = $eventManager; + } + + /** + * @param string|null $password + */ + private function dispatchPasswordCheckEvent($password) + { + if (!is_null($password)) { + $this->eventManager->dispatch( + 'timpack_pwnedvalidator_check_password_strength', + [ + 'password' => $password, + ] + ); + } + } + + /** + * @param AccountManagementInterface $subject + * @param string $email + * @param string $resetToken + * @param string $newPassword + */ + public function beforeResetPassword( + AccountManagementInterface $subject, + $email, + $resetToken, + $newPassword + ) { + $this->dispatchPasswordCheckEvent($newPassword); + } + + /** + * @param AccountManagementInterface $subject + * @param string $email + * @param string $currentPassword + * @param string $newPassword + */ + public function beforeChangePassword( + AccountManagementInterface $subject, + $email, + $currentPassword, + $newPassword + ) { + $this->dispatchPasswordCheckEvent($newPassword); + } + + /** + * @param AccountManagementInterface $subject + * @param string $customerId + * @param string $currentPassword + * @param string $newPassword + */ + public function beforeChangePasswordById( + AccountManagementInterface $subject, + $customerId, + $currentPassword, + $newPassword + ) { + $this->dispatchPasswordCheckEvent($newPassword); + } + + /** + * @param AccountManagementInterface $subject + * @param CustomerInterface $customer + * @param null $password + * @param string $redirectUrl + */ + public function beforeCreateAccount( + AccountManagementInterface $subject, + CustomerInterface $customer, + $password = null, + $redirectUrl = '' + ) { + $this->dispatchPasswordCheckEvent($password); + } +} diff --git a/Rewrite/Model/AccountManagement.php b/Rewrite/Model/AccountManagement.php deleted file mode 100644 index 9208817..0000000 --- a/Rewrite/Model/AccountManagement.php +++ /dev/null @@ -1,115 +0,0 @@ -eventManager = $eventManager; - } - - /** - * @param string $password - * @throws \Magento\Framework\Exception\InputException - * @return void - */ - protected function checkPasswordStrength($password) - { - parent::checkPasswordStrength($password); - $this->eventManager->dispatch('timpack_pwnedvalidator_check_password_strength', ['password' => $password]); - } -} diff --git a/etc/di.xml b/etc/di.xml index 17e9517..826aede 100644 --- a/etc/di.xml +++ b/etc/di.xml @@ -2,8 +2,9 @@ - + + + Magento\Framework\HTTP\Client\Curl