xref: /dokuwiki/inc/Ui/UserProfile.php (revision c6977b3a35d43dd2a2c9271648980059f410f648)
1877c5a1bSSatoshi Sahara<?php
2877c5a1bSSatoshi Sahara
3877c5a1bSSatoshi Saharanamespace dokuwiki\Ui;
4877c5a1bSSatoshi Sahara
5877c5a1bSSatoshi Saharause dokuwiki\Form\Form;
6877c5a1bSSatoshi Sahara
7877c5a1bSSatoshi Sahara/**
8f9dfcbbeSSatoshi Sahara * DokuWiki User Profile Interface
9877c5a1bSSatoshi Sahara *
10877c5a1bSSatoshi Sahara * @package dokuwiki\Ui
11877c5a1bSSatoshi Sahara */
12877c5a1bSSatoshi Saharaclass UserProfile extends Ui
13877c5a1bSSatoshi Sahara{
14877c5a1bSSatoshi Sahara    /**
15877c5a1bSSatoshi Sahara     * Display the User Profile Form Panel
16877c5a1bSSatoshi Sahara     *
17877c5a1bSSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
18877c5a1bSSatoshi Sahara     *
19877c5a1bSSatoshi Sahara     * @return void
20877c5a1bSSatoshi Sahara     */
21877c5a1bSSatoshi Sahara    public function show()
22877c5a1bSSatoshi Sahara    {
23877c5a1bSSatoshi Sahara        global $lang;
24877c5a1bSSatoshi Sahara        global $conf;
25877c5a1bSSatoshi Sahara        global $INPUT;
26877c5a1bSSatoshi Sahara        global $INFO;
27877c5a1bSSatoshi Sahara        /** @var AuthPlugin $auth */
28877c5a1bSSatoshi Sahara        global $auth;
29877c5a1bSSatoshi Sahara
30877c5a1bSSatoshi Sahara        // print intro
31877c5a1bSSatoshi Sahara        print p_locale_xhtml('updateprofile');
32628d5475SSatoshi Sahara        print '<div class="centeralign">';
33877c5a1bSSatoshi Sahara
34877c5a1bSSatoshi Sahara        $fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true);
35877c5a1bSSatoshi Sahara        $email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true);
36877c5a1bSSatoshi Sahara
37877c5a1bSSatoshi Sahara        // create the updateprofile form
38877c5a1bSSatoshi Sahara        $form = new Form(['id' => 'dw__register']);
39877c5a1bSSatoshi Sahara        $form->addTagOpen('div')->addClass('no');
40877c5a1bSSatoshi Sahara        $form->addFieldsetOpen($lang['profile']);
41877c5a1bSSatoshi Sahara        $form->setHiddenField('do', 'profile');
42877c5a1bSSatoshi Sahara        $form->setHiddenField('save', '1');
43877c5a1bSSatoshi Sahara
44877c5a1bSSatoshi Sahara        $attr = array('size' => '50', 'disabled' => 'disabled');
45877c5a1bSSatoshi Sahara        $input = $form->addTextInput('login', $lang['user'])->attrs($attr)->addClass('edit')
4683f8872cSSatoshi Sahara            ->val($INPUT->server->str('REMOTE_USER'));
47877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
48877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
49877c5a1bSSatoshi Sahara
50877c5a1bSSatoshi Sahara        $attr = array('size' => '50');
51877c5a1bSSatoshi Sahara        if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled';
52877c5a1bSSatoshi Sahara        $input = $form->addTextInput('fullname', $lang['fullname'])->attrs($attr)->addClass('edit')
53877c5a1bSSatoshi Sahara            ->val($fullname);
54877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
55877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
56877c5a1bSSatoshi Sahara
57877c5a1bSSatoshi Sahara        $attr = array('type' => 'email', 'size' =>  '50');
58877c5a1bSSatoshi Sahara        if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled';
59877c5a1bSSatoshi Sahara        $input = $form->addTextInput('email', $lang['email'])->attrs($attr)->addClass('edit')
60877c5a1bSSatoshi Sahara            ->val($email);
61877c5a1bSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
62877c5a1bSSatoshi Sahara        $form->addHTML("<br>\n");
63877c5a1bSSatoshi Sahara
64877c5a1bSSatoshi Sahara        if ($auth->canDo('modPass')) {
65877c5a1bSSatoshi Sahara            $attr = array('size'=>'50');
66877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('newpass', $lang['newpass'])->attrs($attr)->addClass('edit');
67877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
68877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
69877c5a1bSSatoshi Sahara
70877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($attr)->addClass('edit');
71877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
72877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
73877c5a1bSSatoshi Sahara        }
74877c5a1bSSatoshi Sahara
75877c5a1bSSatoshi Sahara        if ($conf['profileconfirm']) {
76877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
77877c5a1bSSatoshi Sahara            $attr = array('size' => '50', 'required' => 'required');
78877c5a1bSSatoshi Sahara            $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)->addClass('edit');
79877c5a1bSSatoshi Sahara            $input->getLabel()->attr('class', 'block');
80877c5a1bSSatoshi Sahara            $form->addHTML("<br>\n");
81877c5a1bSSatoshi Sahara        }
82877c5a1bSSatoshi Sahara
83877c5a1bSSatoshi Sahara        $form->addButton('', $lang['btn_save'])->attr('type', 'submit');
84877c5a1bSSatoshi Sahara        $form->addButton('', $lang['btn_reset'])->attr('type', 'reset');
85877c5a1bSSatoshi Sahara
86877c5a1bSSatoshi Sahara        $form->addFieldsetClose();
87877c5a1bSSatoshi Sahara        $form->addTagClose('div');
88877c5a1bSSatoshi Sahara
89*c6977b3aSSatoshi Sahara        print $form->toHTML('UpdateProfile');
90877c5a1bSSatoshi Sahara
91877c5a1bSSatoshi Sahara
92877c5a1bSSatoshi Sahara        if ($auth->canDo('delUser') && actionOK('profile_delete')) {
93877c5a1bSSatoshi Sahara
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");
108877c5a1bSSatoshi Sahara                $attr = array('size' => '50', 'required' => 'required');
109877c5a1bSSatoshi Sahara                $input = $form->addPasswordInput('oldppass', $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*c6977b3aSSatoshi Sahara            print $form->toHTML('ProfileDelete');
120877c5a1bSSatoshi Sahara        }
121877c5a1bSSatoshi Sahara
122628d5475SSatoshi Sahara        print '</div>';
123877c5a1bSSatoshi Sahara    }
124877c5a1bSSatoshi Sahara
125877c5a1bSSatoshi Sahara}
126