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;