1<?php 2 3namespace dokuwiki\Ui; 4 5use dokuwiki\Form\Form; 6 7/** 8 * DokuWiki Resend Password Request Interface 9 * 10 * @package dokuwiki\Ui 11 */ 12class UserResendPwd extends Ui 13{ 14 /** 15 * Display the form to request a new password for an existing account 16 * 17 * @return void 18 * @author Andreas Gohr <andi@splitbrain.org> 19 * 20 * @author Benoit Chesneau <benoit@bchesneau.info> 21 */ 22 public function show() 23 { 24 global $conf; 25 global $INPUT; 26 27 $token = preg_replace('/[^a-f0-9]+/', '', $INPUT->str('pwauth')); 28 29 // print intro 30 echo p_locale_xhtml('resetpwd'); 31 echo '<div class="centeralign">'; 32 33 if (!$conf['autopasswd'] && $token) { 34 $form = $this->formSetNewPassword($token); 35 } else { 36 $form = $this->formResendPassword(); 37 } 38 39 echo $form->toHTML('ResendPwd'); 40 41 echo '</div>'; 42 } 43 44 /** 45 * create a form ui to set new password 46 * 47 * @params string $token cleaned pwauth request variable 48 * @return Form 49 */ 50 protected function formSetNewPassword($token) 51 { 52 global $lang; 53 54 // create the form 55 $form = new Form(['id' => 'dw__resendpwd']); 56 $form->addTagOpen('div')->addClass('no'); 57 $form->addFieldsetOpen($lang['btn_resendpwd']); 58 $form->setHiddenField('token', $token); 59 $form->setHiddenField('do', 'resendpwd'); 60 61 $input = $form->addPasswordInput('pass', $lang['pass'])->attr('size', '50')->addClass('edit'); 62 $input->getLabel()->attr('class', 'block'); 63 $form->addHTML("<br>\n"); 64 $input = $form->addPasswordInput('passchk', $lang['passchk'])->attr('size', '50')->addClass('edit'); 65 $input->getLabel()->attr('class', 'block'); 66 $form->addHTML("<br>\n"); 67 $form->addButton('', $lang['btn_resendpwd'])->attr('type', 'submit'); 68 $form->addFieldsetClose(); 69 $form->addTagClose('div'); 70 return $form; 71 } 72 73 /** 74 * create a form ui to request new password 75 * 76 * @return Form 77 */ 78 protected function formResendPassword() 79 { 80 global $lang; 81 82 // create the form 83 $form = new Form(['id' => 'dw__resendpwd']); 84 $form->addTagOpen('div')->addClass('no'); 85 $form->addFieldsetOpen($lang['btn_resendpwd']); 86 $form->setHiddenField('do', 'resendpwd'); 87 $form->setHiddenField('save', '1'); 88 $form->addHTML("<br>\n"); 89 90 $input = $form->addTextInput('login', $lang['user'])->addClass('edit'); 91 $input->getLabel()->attr('class', 'block'); 92 $form->addHTML("<br>\n"); 93 $form->addHTML("<br>\n"); 94 $form->addButton('', $lang['btn_resendpwd'])->attr('type', 'submit'); 95 $form->addFieldsetClose(); 96 $form->addTagClose('div'); 97 return $form; 98 } 99} 100