1*877c5a1bSSatoshi Sahara<?php 2*877c5a1bSSatoshi Sahara 3*877c5a1bSSatoshi Saharanamespace dokuwiki\Ui; 4*877c5a1bSSatoshi Sahara 5*877c5a1bSSatoshi Saharause dokuwiki\Extension\Event; 6*877c5a1bSSatoshi Saharause dokuwiki\Form\Form; 7*877c5a1bSSatoshi Sahara 8*877c5a1bSSatoshi Sahara/** 9*877c5a1bSSatoshi Sahara * DokuWiki User Profile Insterface 10*877c5a1bSSatoshi Sahara * 11*877c5a1bSSatoshi Sahara * @package dokuwiki\Ui 12*877c5a1bSSatoshi Sahara */ 13*877c5a1bSSatoshi Saharaclass UserProfile extends Ui 14*877c5a1bSSatoshi Sahara{ 15*877c5a1bSSatoshi Sahara /** 16*877c5a1bSSatoshi Sahara * Display the User Profile Form Panel 17*877c5a1bSSatoshi Sahara * 18*877c5a1bSSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 19*877c5a1bSSatoshi Sahara * 20*877c5a1bSSatoshi Sahara * @triggers HTML_UPDATEPROFILEFORM_OUTPUT 21*877c5a1bSSatoshi Sahara * @triggers HTML_PROFILEDELETEFORM_OUTPUT 22*877c5a1bSSatoshi Sahara * @return void 23*877c5a1bSSatoshi Sahara */ 24*877c5a1bSSatoshi Sahara public function show() 25*877c5a1bSSatoshi Sahara { 26*877c5a1bSSatoshi Sahara global $lang; 27*877c5a1bSSatoshi Sahara global $conf; 28*877c5a1bSSatoshi Sahara global $INPUT; 29*877c5a1bSSatoshi Sahara global $INFO; 30*877c5a1bSSatoshi Sahara /** @var AuthPlugin $auth */ 31*877c5a1bSSatoshi Sahara global $auth; 32*877c5a1bSSatoshi Sahara 33*877c5a1bSSatoshi Sahara // print intro 34*877c5a1bSSatoshi Sahara print p_locale_xhtml('updateprofile'); 35*877c5a1bSSatoshi Sahara print '<div class="centeralign">'.DOKU_LF; 36*877c5a1bSSatoshi Sahara 37*877c5a1bSSatoshi Sahara $fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true); 38*877c5a1bSSatoshi Sahara $email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true); 39*877c5a1bSSatoshi Sahara 40*877c5a1bSSatoshi Sahara // create the updateprofile form 41*877c5a1bSSatoshi Sahara $form = new Form(['id' => 'dw__register']); 42*877c5a1bSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 43*877c5a1bSSatoshi Sahara $form->addFieldsetOpen($lang['profile']); 44*877c5a1bSSatoshi Sahara $form->setHiddenField('do', 'profile'); 45*877c5a1bSSatoshi Sahara $form->setHiddenField('save', '1'); 46*877c5a1bSSatoshi Sahara 47*877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'disabled' => 'disabled'); 48*877c5a1bSSatoshi Sahara $input = $form->addTextInput('login', $lang['user'])->attrs($attr)->addClass('edit') 49*877c5a1bSSatoshi Sahara ->val($_SERVER['REMOTE_USER']); 50*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 51*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 52*877c5a1bSSatoshi Sahara 53*877c5a1bSSatoshi Sahara $attr = array('size' => '50'); 54*877c5a1bSSatoshi Sahara if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled'; 55*877c5a1bSSatoshi Sahara $input = $form->addTextInput('fullname', $lang['fullname'])->attrs($attr)->addClass('edit') 56*877c5a1bSSatoshi Sahara ->val($fullname); 57*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 58*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 59*877c5a1bSSatoshi Sahara 60*877c5a1bSSatoshi Sahara $attr = array('type' => 'email', 'size' => '50'); 61*877c5a1bSSatoshi Sahara if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled'; 62*877c5a1bSSatoshi Sahara $input = $form->addTextInput('email', $lang['email'])->attrs($attr)->addClass('edit') 63*877c5a1bSSatoshi Sahara ->val($email); 64*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 65*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 66*877c5a1bSSatoshi Sahara 67*877c5a1bSSatoshi Sahara if ($auth->canDo('modPass')) { 68*877c5a1bSSatoshi Sahara $attr = array('size'=>'50'); 69*877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('newpass', $lang['newpass'])->attrs($attr)->addClass('edit'); 70*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 71*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 72*877c5a1bSSatoshi Sahara 73*877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($attr)->addClass('edit'); 74*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 75*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 76*877c5a1bSSatoshi Sahara } 77*877c5a1bSSatoshi Sahara 78*877c5a1bSSatoshi Sahara if ($conf['profileconfirm']) { 79*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 80*877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'required' => 'required'); 81*877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)->addClass('edit'); 82*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 83*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 84*877c5a1bSSatoshi Sahara } 85*877c5a1bSSatoshi Sahara 86*877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_save'])->attr('type', 'submit'); 87*877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_reset'])->attr('type', 'reset'); 88*877c5a1bSSatoshi Sahara 89*877c5a1bSSatoshi Sahara $form->addFieldsetClose(); 90*877c5a1bSSatoshi Sahara $form->addTagClose('div'); 91*877c5a1bSSatoshi Sahara 92*877c5a1bSSatoshi Sahara // emit HTML_UPDATEPROFILEFORM_OUTPUT event, print the form 93*877c5a1bSSatoshi Sahara Event::createAndTrigger('HTML_UPDATEPROFILEFORM_OUTPUT', $form, 'html_form_output', false); 94*877c5a1bSSatoshi Sahara 95*877c5a1bSSatoshi Sahara 96*877c5a1bSSatoshi Sahara if ($auth->canDo('delUser') && actionOK('profile_delete')) { 97*877c5a1bSSatoshi Sahara 98*877c5a1bSSatoshi Sahara // create the profiledelete form 99*877c5a1bSSatoshi Sahara $form = new Form(['id' => 'dw__profiledelete']); 100*877c5a1bSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 101*877c5a1bSSatoshi Sahara $form->addFieldsetOpen($lang['profdeleteuser']); 102*877c5a1bSSatoshi Sahara $form->setHiddenField('do', 'profile_delete'); 103*877c5a1bSSatoshi Sahara $form->setHiddenField('delete', '1'); 104*877c5a1bSSatoshi Sahara 105*877c5a1bSSatoshi Sahara $form->addCheckbox('confirm_delete', $lang['profconfdelete']) 106*877c5a1bSSatoshi Sahara ->attrs(['required' => 'required']) 107*877c5a1bSSatoshi Sahara ->id('dw__confirmdelete') 108*877c5a1bSSatoshi Sahara ->val('1'); 109*877c5a1bSSatoshi Sahara 110*877c5a1bSSatoshi Sahara if ($conf['profileconfirm']) { 111*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 112*877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'required' => 'required'); 113*877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('oldppass', $lang['oldpass'])->attrs($attr) 114*877c5a1bSSatoshi Sahara ->addClass('edit'); 115*877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 116*877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 117*877c5a1bSSatoshi Sahara } 118*877c5a1bSSatoshi Sahara 119*877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_deleteuser'])->attr('type', 'submit'); 120*877c5a1bSSatoshi Sahara $form->addFieldsetClose(); 121*877c5a1bSSatoshi Sahara $form->addTagClose('div'); 122*877c5a1bSSatoshi Sahara 123*877c5a1bSSatoshi Sahara // emit HTML_PROFILEDELETEFORM_OUTPUT event, print the form 124*877c5a1bSSatoshi Sahara Event::createAndTrigger('HTML_PROFILEDELETEFORM_OUTPUT', $form, 'html_form_output', false); 125*877c5a1bSSatoshi Sahara } 126*877c5a1bSSatoshi Sahara 127*877c5a1bSSatoshi Sahara print '</div>'.DOKU_LF; 128*877c5a1bSSatoshi Sahara } 129*877c5a1bSSatoshi Sahara 130*877c5a1bSSatoshi Sahara} 131