From 26f31ce81bda8f6b4e4e969b47ff5079f5b8902d Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Mon, 10 May 2021 08:37:07 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#1381 --- .../ProcessForgotPassword.module | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/wire/modules/Process/ProcessForgotPassword/ProcessForgotPassword.module b/wire/modules/Process/ProcessForgotPassword/ProcessForgotPassword.module index dd1a28c1..2572ca04 100644 --- a/wire/modules/Process/ProcessForgotPassword/ProcessForgotPassword.module +++ b/wire/modules/Process/ProcessForgotPassword/ProcessForgotPassword.module @@ -555,6 +555,18 @@ class ProcessForgotPassword extends Process implements ConfigurableModule { * */ protected function step4_completeReset($id, $form) { + + $confirmInputfields = array(); + foreach($this->confirmFields as $fieldName) { + $field = $this->wire()->fields->get($fieldName); + $inputfield = $form->getChildByName($fieldName); + if(!$inputfield) continue; + if($field && $field->hasFlag(Field::flagUnique)) { + // unique flag does not apply to this input scenario + $inputfield->hasField = null; + } + $confirmInputfields[$fieldName] = $inputfield; + } /** @var WireInput $input */ $input = $this->wire('input'); @@ -578,9 +590,7 @@ class ProcessForgotPassword extends Process implements ConfigurableModule { /** @var User $user */ $user = $this->wire('users')->get((int) $id); - foreach($this->confirmFields as $fieldName) { - $f = $form->getChildByName($fieldName); - if(!$f) continue; + foreach($confirmInputfields as $fieldName => $f) { $fv = $f->attr('value'); $uv = $user->get($fieldName); if(empty($fv) && empty($uv)) continue;