コード例 #1
0
 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");
 }