feat: Initial commit for LFP_Manager_DBG (V1.1.0.22)

This commit is contained in:
2026-09-22 11:37:05 +09:00
commit df038ae86b
158 changed files with 78308 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
using System;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using LFP_Manager.DataStructure;
using LFP_Manager.Function;
namespace LFP_Manager.Forms
{
public partial class FmxChangePassword : XtraForm
{
private CommConfig Config;
public FmxChangePassword(CommConfig aConfig)
{
InitializeComponent();
Config = aConfig;
cbPasswordType.Properties.Items.Clear();
cbPasswordType.Properties.Items.Add("Anti-Theft Enable Password");
cbPasswordType.Properties.Items.Add("Anti-Theft Disable Password");
cbPasswordType.SelectedIndex = 0;
}
private void CbPasswordType_SelectedIndexChanged(object sender, EventArgs e)
{
teCurrentPassword.Text = string.Empty;
teNewPassword.Text = string.Empty;
teConfirmPassword.Text = string.Empty;
teCurrentPassword.Focus();
}
private void CeShowPassword_CheckedChanged(object sender, EventArgs e)
{
char pChar = ceShowPassword.Checked ? '\0' : '*';
teCurrentPassword.Properties.PasswordChar = pChar;
teNewPassword.Properties.PasswordChar = pChar;
teConfirmPassword.Properties.PasswordChar = pChar;
}
private void BtnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void BtnOk_Click(object sender, EventArgs e)
{
string currentInput = teCurrentPassword.Text;
string newInput = teNewPassword.Text;
string confirmInput = teConfirmPassword.Text;
bool isEnablePw = (cbPasswordType.SelectedIndex == 0);
string actualCurrentPw = isEnablePw ? Config.EnablePassword : Config.DisablePassword;
// 1. 현재 비밀번호 확인
if (currentInput != actualCurrentPw)
{
MessageBox.Show("Current password is incorrect.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
teCurrentPassword.Focus();
teCurrentPassword.SelectAll();
return;
}
// 2. 새 비밀번호 공백 확인
if (string.IsNullOrWhiteSpace(newInput))
{
MessageBox.Show("New password cannot be empty.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
teNewPassword.Focus();
return;
}
// 3. 새 비밀번호와 현재 비밀번호 동일 여부 확인
if (newInput == actualCurrentPw)
{
MessageBox.Show("New password cannot be the same as current password.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
teNewPassword.Focus();
teNewPassword.SelectAll();
return;
}
// 4. 새 비밀번호 일치 확인
if (newInput != confirmInput)
{
MessageBox.Show("New password and confirm password do not match.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
teConfirmPassword.Focus();
teConfirmPassword.SelectAll();
return;
}
// 5. 비밀번호 업데이트 및 ini 파일 저장 (자동 암호화)
if (isEnablePw)
{
Config.EnablePassword = newInput;
}
else
{
Config.DisablePassword = newInput;
}
try
{
csIniControlFunction.IniSave(Application.ExecutablePath, Config);
string pwTypeName = isEnablePw ? "Anti-Theft Enable Password" : "Anti-Theft Disable Password";
MessageBox.Show(string.Format("{0} has been changed successfully.", pwTypeName), "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (Exception ex)
{
MessageBox.Show(string.Format("Failed to save password: {0}", ex.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}