splitbrain /
dokuwiki
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
Bug
introduced
by
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
|
|||
| 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 |