From 6733c4d7da44a7f0c2d431e1c26dab2693a7d297 Mon Sep 17 00:00:00 2001 From: Chris Smith <chris.eureka@jalakai.co.uk> Date: Sun, 4 Oct 2009 13:57:40 +0200 Subject: [PATCH] FS#1728, ensure create user correctly checks field modification 'canDo' Ignore-this: e4d974b5e09e45861a5e463784c6b946 darcs-hash:20091004115740-f07c6-46e15fc4f69949530690400fcb0698b9b7a0e350.gz --- lib/plugins/usermanager/admin.php | 41 +++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 1975dc6c9..26ee95093 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -358,16 +358,43 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { list($user,$pass,$name,$mail,$grps) = $this->_retrieveUser(); if (empty($user)) return false; - if (empty($pass)){ - if(!empty($_REQUEST['usernotify'])){ - $pass = auth_pwgen(); - } else { + + if ($this->_auth->canDo('modPass')){ + if (empty($pass)){ + if(!empty($_REQUEST['usernotify'])){ + $pass = auth_pwgen(); + } else { + msg($this->lang['add_fail'], -1); + return false; + } + } + } else { + if (!empty($pass)){ + msg($this->lang['add_fail'], -1); return false; } } - if (empty($name) || empty($mail)){ - msg($this->lang['add_fail'], -1); - return false; + + if ($this->_auth->canDo('modName')){ + if (empty($name)){ + msg($this->lang['add_fail'], -1); + return false; + } + } else { + if (!empty($name)){ + return false; + } + } + + if ($this->_auth->canDo('modMail')){ + if (empty($mail)){ + msg($this->lang['add_fail'], -1); + return false; + } + } else { + if (!empty($mail)){ + return false; + } } if ($ok = $this->_auth->triggerUserMod('create', array($user,$pass,$name,$mail,$grps))) { -- GitLab