I have the following code to further validate passwords when creating/registering an account which is working fine.
However, when trying to use this same validation for resetting a password I am not getting any errors back?
Can anyone point me in the right direction...?
public function onBeforeSetPassword(Event $event)
{
$user = $event->params['user'];
$password = $event->params['password'];
if (mb_strlen($password) < 8)
{
$user->addError('password', 'Sorry but your password must be at least 8 characters.');
$event->performAction = false;
}
if (!preg_match('/(\d.*[A-Z]|[A-Z].*\d)/', $password))
{
$user->addError('password', 'Sorry but your password must contain at least one uppercase letter and one number.');
$event->performAction = false;
}
}
On the template:
{% if account is defined and account.getErrors('password') %}
{% include '_includes/formError' with { error : account.getErrors('password')|join('<br>') } %}
{% endif %}
Thanks.
Craft::log()
in there, is your method even being hit in the reset password scenario?onBeforeSetPassword
event does seem to fire when passwords are reset. You can confirm this yourself by addingMyPluginHandlePlugin::log("Setting password...");
to your event handler (obviously, replaceMyPluginHandle
with the real handle for your plugin), and then open up your plugin's log file at/craft/storage/runtime/logs/mypluginhandle.log
, after resetting a password. If the event does indeed fire, there's something else amiss with your code somewhere.