feat: Initial commit for LFP_Manager_DBG (V1.1.0.22)
This commit is contained in:
114
LFP_Manager/Forms/FmxChangePassword.cs
Normal file
114
LFP_Manager/Forms/FmxChangePassword.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user