xref: /dokuwiki/inc/Ui/UserProfile.php (revision 26dfc2323f8f70cb69aac4c8c51bf7997809f2ca)
1877c5a1bSSatoshi Sahara<?php
2877c5a1bSSatoshi Sahara
3877c5a1bSSatoshi Saharanamespace dokuwiki\Ui;
4877c5a1bSSatoshi Sahara
579a2d784SGerrit Uitslaguse dokuwiki\Extension\AuthPlugin;
6877c5a1bSSatoshi Saharause dokuwiki\Form\Form;
7877c5a1bSSatoshi Sahara
8877c5a1bSSatoshi Sahara/**
9f9dfcbbeSSatoshi Sahara * DokuWiki User Profile Interface
10877c5a1bSSatoshi Sahara *
11877c5a1bSSatoshi Sahara * @package dokuwiki\Ui
12877c5a1bSSatoshi Sahara */
13877c5a1bSSatoshi Saharaclass UserProfile extends Ui
14877c5a1bSSatoshi Sahara{
15877c5a1bSSatoshi Sahara    /**
16877c5a1bSSatoshi Sahara     * Display the User Profile Form Panel
17877c5a1bSSatoshi Sahara     *
18e2d055f5SAndreas Gohr     * @return void
19877c5a1bSSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
20877c5a1bSSatoshi Sahara     *
21877c5a1bSSatoshi Sahara     */
22877c5a1bSSatoshi Sahara    public function show()
23877c5a1bSSatoshi Sahara    {
24877c5a1bSSatoshi Sahara        global $lang;
25877c5a1bSSatoshi Sahara        global $conf;
26877c5a1bSSatoshi Sahara        global $INPUT;
27877c5a1bSSatoshi Sahara        global $INFO;
28877c5a1bSSatoshi Sahara        /** @var AuthPlugin $auth */
29877c5a1bSSatoshi Sahara        global $auth;
30877c5a1bSSatoshi Sahara
31877c5a1bSSatoshi Sahara        // print intro
32*26dfc232SAndreas Gohr        echo p_locale_xhtml('updateprofile');
33*26dfc232SAndreas Gohr        echo '<div class="centeralign">';
34877c5a1bSSatoshi Sahara
35877c5a1bSSatoshi Sahara        $fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true);
36877c5a1bSSatoshi Sahara        $email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true);
37877c5a1bSSatoshi Sahara
38877c5a1bSSatoshi Sahara        // create the updateprofile form
39877c5a1bSSatoshi Sahara        $form = new Form(['id' => 'dw__register']);
40877c5a1bSSatoshi Sahara        $form->addTagOpen('div')->addClass('no');
41877c5a1bSSatoshi Sahara        $form->addFieldsetOpen($lang['profile']);
42877c5a1bSSatoshi Sahara        $form->setHiddenField('do', 'profile');
43877c5a1bSSatoshi Sahara        $form->setHiddenField('save', '1');
44877c5a1bSSatoshi Sahara
45e2d055f5SAndreas Gohr        $attr = ['size' => '50', 'disabled' => 'disabled'];
46877c5a1bSSatoshi Sahara        $input = $form->addTextInput('login', $lang['user'])->attrs($attr)->addClass('edit')
4783f8872cSSatoshi Sahara            ->val($INPUT->server->str('REMOTE_USER'));
48877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
49877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
50877c5a1bSSatoshi Sahara
51e2d055f5SAndreas Gohr        $attr = ['size' => '50'];
52877c5a1bSSatoshi Sahara        if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled';
53877c5a1bSSatoshi Sahara        $input = $form->addTextInput('fullname', $lang['fullname'])->attrs($attr)->addClass('edit')
54877c5a1bSSatoshi Sahara            ->val($fullname);
55877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
56877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
57877c5a1bSSatoshi Sahara
58e2d055f5SAndreas Gohr        $attr = ['type' => 'email', 'size' => '50'];
59877c5a1bSSatoshi Sahara        if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled';
60877c5a1bSSatoshi Sahara        $input = $form->addTextInput('email', $lang['email'])->attrs($attr)->addClass('edit')
61877c5a1bSSatoshi Sahara            ->val($email);
62877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
63877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
64877c5a1bSSatoshi Sahara
65877c5a1bSSatoshi Sahara        if ($auth->canDo('modPass')) {
66e2d055f5SAndreas Gohr            $attr = ['size' => '50'];
67877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('newpass', $lang['newpass'])->attrs($attr)->addClass('edit');
68877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
69877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
70877c5a1bSSatoshi Sahara
71877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($attr)->addClass('edit');
72877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
73877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
74877c5a1bSSatoshi Sahara        }
75877c5a1bSSatoshi Sahara
76877c5a1bSSatoshi Sahara        if ($conf['profileconfirm']) {
77877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
78e2d055f5SAndreas Gohr            $attr = ['size' => '50', 'required' => 'required'];
79877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)->addClass('edit');
80877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
81877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
82877c5a1bSSatoshi Sahara        }
83877c5a1bSSatoshi Sahara
84877c5a1bSSatoshi Sahara        $form->addButton('', $lang['btn_save'])->attr('type', 'submit');
85877c5a1bSSatoshi Sahara        $form->addButton('', $lang['btn_reset'])->attr('type', 'reset');
86877c5a1bSSatoshi Sahara
87877c5a1bSSatoshi Sahara        $form->addFieldsetClose();
88877c5a1bSSatoshi Sahara        $form->addTagClose('div');
89877c5a1bSSatoshi Sahara
90*26dfc232SAndreas Gohr        echo $form->toHTML('UpdateProfile');
91877c5a1bSSatoshi Sahara
92877c5a1bSSatoshi Sahara
93877c5a1bSSatoshi Sahara        if ($auth->canDo('delUser') && actionOK('profile_delete')) {
94877c5a1bSSatoshi Sahara            // create the profiledelete form
95877c5a1bSSatoshi Sahara            $form = new Form(['id' => 'dw__profiledelete']);
96877c5a1bSSatoshi Sahara            $form->addTagOpen('div')->addClass('no');
97877c5a1bSSatoshi Sahara            $form->addFieldsetOpen($lang['profdeleteuser']);
98877c5a1bSSatoshi Sahara            $form->setHiddenField('do', 'profile_delete');
99877c5a1bSSatoshi Sahara            $form->setHiddenField('delete', '1');
100877c5a1bSSatoshi Sahara
101877c5a1bSSatoshi Sahara            $form->addCheckbox('confirm_delete', $lang['profconfdelete'])
102877c5a1bSSatoshi Sahara                ->attrs(['required' => 'required'])
103877c5a1bSSatoshi Sahara                ->id('dw__confirmdelete')
104877c5a1bSSatoshi Sahara                ->val('1');
105877c5a1bSSatoshi Sahara
106877c5a1bSSatoshi Sahara            if ($conf['profileconfirm']) {
107877c5a1bSSatoshi Sahara                $form->addHTML("<br>\n");
108e2d055f5SAndreas Gohr                $attr = ['size' => '50', 'required' => 'required'];
109b7adc2d2SMatthias Häsing-Keller                $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)
110877c5a1bSSatoshi Sahara                    ->addClass('edit');
111877c5a1bSSatoshi Sahara                $input->getLabel()->attr('class', 'block');
112877c5a1bSSatoshi Sahara                $form->addHTML("<br>\n");
113877c5a1bSSatoshi Sahara            }
114877c5a1bSSatoshi Sahara
115877c5a1bSSatoshi Sahara            $form->addButton('', $lang['btn_deleteuser'])->attr('type', 'submit');
116877c5a1bSSatoshi Sahara            $form->addFieldsetClose();
117877c5a1bSSatoshi Sahara            $form->addTagClose('div');
118877c5a1bSSatoshi Sahara
119*26dfc232SAndreas Gohr            echo $form->toHTML('ProfileDelete');
120877c5a1bSSatoshi Sahara        }
121877c5a1bSSatoshi Sahara
122*26dfc232SAndreas Gohr        echo '</div>';
123877c5a1bSSatoshi Sahara    }
124877c5a1bSSatoshi Sahara}
125