From 60b9901b5ad71f2968a75700cc8d30454f51800a Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 13 May 2007 12:16:00 +0200 Subject: [PATCH] make sure all needed data is given when creating users from backend FS#1096 darcs-hash:20070513101600-7ad00-2e225a1d06706cc7591f16eb8eb17095e04ea6dc.gz --- lib/plugins/usermanager/admin.php | 38 +++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 9e5133de3..4d9288116 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -40,8 +40,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { global $auth; $this->setupLocale(); - - if (!isset($auth)) { + + if (!isset($auth)) { $this->disabled = $this->lang['noauth']; } else if (!$auth->canDo('getUsers')) { $this->disabled = $this->lang['nosupport']; @@ -49,7 +49,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // we're good to go $this->_auth = & $auth; - + } } @@ -72,7 +72,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { */ function getMenuText($language) { - if (!is_null($this->_auth)) + if (!is_null($this->_auth)) return parent::getMenuText($language); return $this->getLang('menu').' '.$this->disabled; @@ -84,7 +84,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { function getMenuSort() { return 2; } - + /** * handle user request */ @@ -120,9 +120,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_start = 0; break; } - + $this->_user_total = $this->_auth->canDo('getUserCount') ? $this->_auth->getUserCount($this->_filter) : -1; - + // page handling switch($cmd){ case 'start' : $this->_start = 0; break; @@ -149,7 +149,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $page_buttons = $this->_pagination(); $delete_disable = $this->_auth->canDo('delUser') ? '' : 'disabled="disabled"'; - + if ($this->_auth->canDo('UserMod')) { $edit_disable = ''; $img_useredit = 'user_edit.png'; @@ -163,7 +163,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("<div id=\"user__manager\">"); ptln("<div class=\"level2\">"); - + if ($this->_user_total > 0) { ptln("<p>".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."</p>"); } else { @@ -298,7 +298,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // save current $user, we need this to access details if the name is changed if ($user) ptln(" <input type=\"hidden\" name=\"userid_old\" value=\"".$user."\" />",$indent); - + $this->_htmlFilterSettings($indent+10); ptln(" <input type=\"submit\" name=\"fn[".$cmd."]\" class=\"button\" value=\"".$this->lang[$cmd]."\" />",$indent); @@ -312,7 +312,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("</form>",$indent); } - + function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { $disabled = $cando ? "" : " disabled=\"disabled\""; $class = $cando ? "" : " class=\"disabled\""; @@ -334,11 +334,15 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } function _addUser(){ - + if (!$this->_auth->canDo('addUser')) return false; list($user,$pass,$name,$mail,$grps) = $this->_retrieveUser(); if (empty($user)) return false; + if (empty($pass) || empty($name) || empty($mail)){ + msg($this->lang['add_fail'], -1); + return false; + } if ($ok = $this->_auth->createUser($user,$pass,$name,$mail,$grps)) { @@ -348,7 +352,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_notifyUser($user,$pass); } } else { - msg($this->lang['add_fail'], 1); + msg($this->lang['add_fail'], -1); } return $ok; @@ -408,14 +412,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // get currently valid user data $olduser = cleanID(preg_replace('/.*:/','',$_REQUEST['userid_old'])); $oldinfo = $this->_auth->getUserData($olduser); - + // get new user data subject to change list($newuser,$newpass,$newname,$newmail,$newgrps) = $this->_retrieveUser(); if (empty($newuser)) return false; $changes = array(); if ($newuser != $olduser) { - + if (!$this->_auth->canDo('modLogin')) { // sanity check, shouldn't be possible msg($this->lang['update_fail'],-1); return false; @@ -430,7 +434,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - if (!empty($newpass) && $this->_auth->canDo('modPass')) + if (!empty($newpass) && $this->_auth->canDo('modPass')) $changes['pass'] = $newpass; if (!empty($newname) && $this->_auth->canDo('modName') && $newname != $oldinfo['name']) $changes['name'] = $newname; @@ -478,7 +482,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @return array(user, password, full name, email, array(groups)) */ function _retrieveUser($clean=true) { - + $user[0] = ($clean) ? cleanID(preg_replace('/.*:/','',$_REQUEST['userid'])) : $_REQUEST['userid']; $user[1] = $_REQUEST['userpass']; $user[2] = $_REQUEST['username']; -- GitLab