Failed Conditions
Push — tokenauth ( b0ac60 )
by Andreas
11:30 queued 08:14
created

inc/Ui/Profile.php (2 issues)

Labels
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace dokuwiki\Ui;
4
use dokuwiki\AuthenticationToken;
5
use dokuwiki\Form\Form;
6
7
/**
8
 * @author Christopher Smith <[email protected]>
9
 * @author Andreas Gohr <[email protected]>
10
 */
11
class Profile extends Ui {
12
13
    /** @inheritdoc */
14
    public function show() {
15
        /** @var \DokuWiki_Auth_Plugin $auth */
16
        global $auth;
17
        global $INFO;
18
        global $INPUT;
19
20
        $userinfo = [
21
            'user' => $_SERVER['REMOTE_USER'],
22
            'name' => $INPUT->post->str('fullname', $INFO['userinfo']['name'], true),
23
            'mail' => $INPUT->post->str('email', $INFO['userinfo']['mail'], true),
24
25
        ];
26
27
        print p_locale_xhtml('updateprofile');
28
        print '<div class="centeralign">' . NL;
29
30
        html_form('updateprofile', $this->profileForm($userinfo));
0 ignored issues
show
$this->profileForm($userinfo) cannot be passed to html_form() as the parameter $form expects a reference.
Loading history...
31
        echo $this->tokenForm($userinfo['user'])->toHTML();
32
        if($auth->canDo('delUser') && actionOK('profile_delete')) {
33
            html_form('profiledelete', $this->deletionForm());
0 ignored issues
show
$this->deletionForm() cannot be passed to html_form() as the parameter $form expects a reference.
Loading history...
34
        }
35
36
        print '</div>' . NL;
37
    }
38
39
    /**
40
     * Get the profile form
41
     *
42
     * @param array $userinfo
43
     * @return \Doku_Form
44
     */
45
    protected function profileForm($userinfo) {
46
        /** @var \DokuWiki_Auth_Plugin $auth */
47
        global $auth;
48
        global $conf;
49
        global $lang;
50
51
        $form = new \Doku_Form(array('id' => 'dw__register'));
52
        $form->startFieldset($lang['profile']);
53
        $form->addHidden('do', 'profile');
54
        $form->addHidden('save', '1');
55
        $form->addElement(form_makeTextField('login', $userinfo['user'], $lang['user'], '', 'block', array('size' => '50', 'disabled' => 'disabled')));
56
        $attr = array('size' => '50');
57
        if(!$auth->canDo('modName')) $attr['disabled'] = 'disabled';
58
        $form->addElement(form_makeTextField('fullname', $userinfo['name'], $lang['fullname'], '', 'block', $attr));
59
        $attr = array('size' => '50', 'class' => 'edit');
60
        if(!$auth->canDo('modMail')) $attr['disabled'] = 'disabled';
61
        $form->addElement(form_makeField('email', 'email', $userinfo['mail'], $lang['email'], '', 'block', $attr));
62
        $form->addElement(form_makeTag('br'));
63
        if($auth->canDo('modPass')) {
64
            $form->addElement(form_makePasswordField('newpass', $lang['newpass'], '', 'block', array('size' => '50')));
65
            $form->addElement(form_makePasswordField('passchk', $lang['passchk'], '', 'block', array('size' => '50')));
66
        }
67
        if($conf['profileconfirm']) {
68
            $form->addElement(form_makeTag('br'));
69
            $form->addElement(form_makePasswordField('oldpass', $lang['oldpass'], '', 'block', array('size' => '50', 'required' => 'required')));
70
        }
71
        $form->addElement(form_makeButton('submit', '', $lang['btn_save']));
72
        $form->addElement(form_makeButton('reset', '', $lang['btn_reset']));
73
74
        $form->endFieldset();
75
        return $form;
76
    }
77
78
    /**
79
     * Get the authentication token form
80
     * 
81
     * @param string $user
82
     * @return Form
83
     */
84
    protected function tokenForm($user) {
85
        global $lang;
86
        global $ID;
87
88
        $token = AuthenticationToken::fromUser($user);
89
90
        $form = new Form(['id' => 'dw__profiletoken', 'action'=>wl(), 'method'=>'POST']);
91
        $form->setHiddenField('do', 'authtoken');
92
        $form->setHiddenField('id', 'ID');
93
        $form->addFieldsetOpen($lang['proftokenlegend']);
94
        $form->addHTML('<p>'.$lang['proftokeninfo'].'</p>');
95
        $form->addHTML('<pre>'.$token->getToken().'</pre>');
96
        $form->addButton('regen', $lang['proftokengenerate']);
97
        $form->addFieldsetClose();
98
99
        return $form;
100
    }
101
102
    /**
103
     * Get the user deletion form
104
     *
105
     * @return \Doku_Form
106
     */
107
    protected function deletionForm() {
108
        /** @var \DokuWiki_Auth_Plugin $auth */
109
        global $auth;
110
        global $lang;
111
        global $conf;
112
113
        $form = new \Doku_Form(array('id' => 'dw__profiledelete'));
114
        $form->startFieldset($lang['profdeleteuser']);
115
        $form->addHidden('do', 'profile_delete');
116
        $form->addHidden('delete', '1');
117
        $form->addElement(form_makeCheckboxField('confirm_delete', '1', $lang['profconfdelete'], 'dw__confirmdelete', '', array('required' => 'required')));
118
        if($conf['profileconfirm']) {
119
            $form->addElement(form_makeTag('br'));
120
            $form->addElement(form_makePasswordField('oldpass', $lang['oldpass'], '', 'block', array('size' => '50', 'required' => 'required')));
121
        }
122
        $form->addElement(form_makeButton('submit', '', $lang['btn_deleteuser']));
123
        $form->endFieldset();
124
125
        return $form;
126
    }
127
}
128