From 71c74b1b572f3bdf00ba99009cc23f8f48072a1c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sat, 08 Mar 2014 11:58:49 -0500 Subject: [PATCH] Fixed: FS#3372 - Web browser password autofill function overwrites settings --- interface/web/admin/users_edit.php | 43 +++++++++++++++++++++++++------------------ 1 files changed, 25 insertions(+), 18 deletions(-) diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php index 487be72..2b1be7f 100644 --- a/interface/web/admin/users_edit.php +++ b/interface/web/admin/users_edit.php @@ -38,8 +38,8 @@ * End Form configuration ******************************************/ -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); @@ -49,35 +49,42 @@ $app->load('tform_actions'); class page_action extends tform_actions { - + function onBeforeInsert() { global $app, $conf; - - if(!in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { + + if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } } - + function onBeforeUpdate() { global $app, $conf; - + if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); - - if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { + + if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } + $this->oldDataRecord = $app->tform->getDataRecord($this->id); + + //* A user that belongs to a client record (client or reseller) may not have typ admin + if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin' && $this->oldDataRecord['client_id'] > 0) { + $app->tform->errorMessage .= $app->tform->wordbook['client_not_admin_err']; + } + } - + /* This function is called automatically right after the data was successful updated in the database. */ function onAfterUpdate() { global $app, $conf; - + $client = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = ".$this->id); - $client_id = $client['client_id']; + $client_id = $app->functions->intval($client['client_id']); $username = $app->db->quote($this->dataRecord["username"]); $old_username = $app->db->quote($this->oldDataRecord['username']); @@ -89,28 +96,28 @@ $app->db->datalogUpdate("sys_group", "name = '$username'", 'groupid', $tmp['groupid']); unset($tmp); } - + // password changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord["passwort"]) && $this->dataRecord["passwort"] != '') { $password = $app->db->quote($this->dataRecord["passwort"]); $salt="$1$"; $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0,63)]; + $salt.=$base64_alphabet[mt_rand(0, 63)]; } $salt.="$"; - $password = crypt(stripslashes($password),$salt); + $password = crypt(stripslashes($password), $salt); $sql = "UPDATE client SET password = '$password' WHERE client_id = $client_id AND username = '$username'"; $app->db->query($sql); } - + // language changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) { $language = $app->db->quote($this->dataRecord["language"]); $sql = "UPDATE client SET language = '$language' WHERE client_id = $client_id AND username = '$username'"; $app->db->query($sql); } - + // reseller status changed /* if(isset($this->dataRecord["limit_client"]) && $this->dataRecord["limit_client"] != $this->oldDataRecord["limit_client"]) { @@ -130,4 +137,4 @@ $page = new page_action; $page->onLoad(); -?> \ No newline at end of file +?> -- Gitblit v1.9.1