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