Failed Conditions
Pull Request — master (#3198)
by
unknown
02:54
created

UserResendPwd::show()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

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