public function action_update($inputData) { $hidden_user_id = $inputData['textHiddenID']; $hidden_permission_id = $inputData['textHiddenPermissionID']; $hidden_password = $inputData['textHiddenPassword']; $id = $inputData['textID']; $group_id = intval($inputData['radioGroup']); $position_id = intval($inputData['optPosition']); $password = $inputData['textPassword']; $name = $inputData['textName']; $telphone = $inputData['textTelphone']; $mobile = $inputData['textMobile']; $email = $inputData['textEmail']; $location = $inputData['textLocation']; $portArray = $inputData['multiOptPort']; $onboard_date = $inputData['textOnboardDate']; $onboard = intval($inputData['optOnboard']); $data_enable = $inputData['cboxPermissionData'] == "on" ? 1 : 0; $verify_enable = $inputData['cboxPermissionVerify'] == "on" ? 1 : 0; $sys_enable = $inputData['cboxPermissionSys'] == "on" ? 1 : 0; $statistic_enable = $inputData['cboxPermissionStatistics'] == "on" ? 1 : 0; $compare_enable = $inputData['cboxPermissionCompare'] == "on" ? 1 : 0; $verify_level = intval($inputData['radioPermissionVerify']); // 1, 2, 3 $activate = intval($inputData['radioActivate']); $comment = $inputData['textComment']; $passwdObj = new UserPassword(); if ($password) { $encrypt_passowrd = $passwdObj->encrypt_password($password); } else { if ($hidden_password) { $encrypt_passowrd = $hidden_password; } else { $encrypt_passowrd = $passwdObj->get_encrypt_default_password(); } } /* start database transaction */ $this->m_dbObj->BeginTransaction(); if ($hidden_user_id == $id) { // update data here $sqlUpdateUserCmd = "UPDATE user_mgt_table SET name='{$name}', password='******', telphone='{$telphone}', mobile='{$mobile}', email='{$email}', location='{$location}', group_id='{$group_id}', position_id='{$position_id}', onboard_date='{$onboard_date}', onboard='{$onboard}', activate='{$activate}', comment='{$comment}' WHERE id='{$id}'"; if (!$this->m_dbObj->Execute($sqlUpdateUserCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } $sqlUpdatePermissionCmd = "UPDATE user_permission_table SET data='{$data_enable}', verify='{$verify_enable}', verify_level='{$verify_level}', sys='{$sys_enable}', statistic='{$statistic_enable}', compare='{$compare_enable}' WHERE id='{$id}'"; if (!$this->m_dbObj->Execute($sqlUpdatePermissionCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } $sqlDeleteUserPorts = "DELETE FROM user_port_mapping_table WHERE user_id='{$id}'"; if (!$this->m_dbObj->Execute($sqlDeleteUserPorts)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } foreach ($portArray as $value) { $sqlAddPortCmd = "INSERT INTo user_port_mapping_table VALUES('{$id}', '{$value}')"; if (!$this->m_dbObj->Execute($sqlAddPortCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } } } else { // user id is updated, we need to insert new data and remove old one $sqlAddUserCmd = "INSERT INTO user_mgt_table VALUES('{$id}', '{$name}', '{$encrypt_passowrd}', '{$telphone}', '{$mobile}', '{$email}', '{$location}', '{$group_id}', '{$position_id}', '{$onboard_date}', '{$onboard}', '{$activate}', '{$comment}')"; if (!$this->m_dbObj->Execute($sqlAddUserCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } /* permission */ $sqlAddPermissionCmd = "INSERT INTO user_permission_table VALUES ('{$id}', '{$data_enable}', '{$verify_enable}', '{$verify_level}', '{$sys_enable}', '{$statistic_enable}', '{$compare_enable}');"; if (!$this->m_dbObj->Execute($sqlAddPermissionCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } /* port mapping */ foreach ($portArray as $value) { if ($value != "請選擇") { $sqlAddPortCmd = "INSERT INTo user_port_mapping_table VALUES('{$id}', '{$value}')"; if (!$this->m_dbObj->Execute($sqlAddPortCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } } } /* delete old user data */ $sqlDeleteUserCmd = "DELETE FROM user_mgt_table WHERE id='{$hidden_user_id}'"; $sqlDeletePermissionCmd = "DELETE FROM user_permission_table WHERE id='{$hidden_user_id}'"; $sqlDeletePortCmd = "DELETE FROM user_port_mapping_table WHERE user_id='{$hidden_user_id}'"; if (!$this->m_dbObj->Execute($sqlDeleteUserCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } if (!$this->m_dbObj->Execute($sqlDeletePermissionCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } if (!$this->m_dbObj->Execute($sqlDeletePortCmd)) { $errorMsg = "編輯失敗\n" . $this->m_dbObj->GetLastError(); $this->m_dbObj->Rollback(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect($errorMsg, 'sys_user.php'); return; } } $this->m_dbObj->Commit(); $this->m_utilsObj->m_jsObj->popup_alert_message_and_redirect("編輯成功", "sys_user.php"); }