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 * 18877c5a1bSSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 19877c5a1bSSatoshi Sahara * 20877c5a1bSSatoshi Sahara * @return void 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 32877c5a1bSSatoshi Sahara print p_locale_xhtml('updateprofile'); 33628d5475SSatoshi Sahara print '<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 45877c5a1bSSatoshi Sahara $attr = array('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 51877c5a1bSSatoshi Sahara $attr = array('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 58877c5a1bSSatoshi Sahara $attr = array('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')) { 66877c5a1bSSatoshi Sahara $attr = array('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"); 78877c5a1bSSatoshi Sahara $attr = array('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 90c6977b3aSSatoshi Sahara print $form->toHTML('UpdateProfile'); 91877c5a1bSSatoshi Sahara 92877c5a1bSSatoshi Sahara 93877c5a1bSSatoshi Sahara if ($auth->canDo('delUser') && actionOK('profile_delete')) { 94877c5a1bSSatoshi Sahara 95877c5a1bSSatoshi Sahara // create the profiledelete form 96877c5a1bSSatoshi Sahara $form = new Form(['id' => 'dw__profiledelete']); 97877c5a1bSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 98877c5a1bSSatoshi Sahara $form->addFieldsetOpen($lang['profdeleteuser']); 99877c5a1bSSatoshi Sahara $form->setHiddenField('do', 'profile_delete'); 100877c5a1bSSatoshi Sahara $form->setHiddenField('delete', '1'); 101877c5a1bSSatoshi Sahara 102877c5a1bSSatoshi Sahara $form->addCheckbox('confirm_delete', $lang['profconfdelete']) 103877c5a1bSSatoshi Sahara ->attrs(['required' => 'required']) 104877c5a1bSSatoshi Sahara ->id('dw__confirmdelete') 105877c5a1bSSatoshi Sahara ->val('1'); 106877c5a1bSSatoshi Sahara 107877c5a1bSSatoshi Sahara if ($conf['profileconfirm']) { 108877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 109877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'required' => 'required'); 110*b7adc2d2SMatthias Häsing-Keller $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr) 111877c5a1bSSatoshi Sahara ->addClass('edit'); 112877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 113877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 114877c5a1bSSatoshi Sahara } 115877c5a1bSSatoshi Sahara 116877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_deleteuser'])->attr('type', 'submit'); 117877c5a1bSSatoshi Sahara $form->addFieldsetClose(); 118877c5a1bSSatoshi Sahara $form->addTagClose('div'); 119877c5a1bSSatoshi Sahara 120c6977b3aSSatoshi Sahara print $form->toHTML('ProfileDelete'); 121877c5a1bSSatoshi Sahara } 122877c5a1bSSatoshi Sahara 123628d5475SSatoshi Sahara print '</div>'; 124877c5a1bSSatoshi Sahara } 125877c5a1bSSatoshi Sahara 126877c5a1bSSatoshi Sahara} 127