添加修改密码函数以及界面
This commit is contained in:
parent
5caf65c869
commit
6d5c509d01
@ -28,6 +28,7 @@ BEGIN_MESSAGE_MAP(LogInDlg, MyDialog)
|
||||
// ON_NOTIFY(BCN_HOTITEMCHANGE, IDC_CHECK1, &LogInDlg::OnBnHotItemChangeCheck1)
|
||||
// ON_NOTIFY(NM_THEMECHANGED, IDC_CHECK1, &LogInDlg::OnNMThemeChangedCheck1)
|
||||
ON_BN_CLICKED(IDC_CHECK1, &LogInDlg::OnBnClickedCheck1)
|
||||
ON_WM_CTLCOLOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@ -38,7 +39,7 @@ BOOL LogInDlg::OnInitDialog()
|
||||
CImage img;
|
||||
img.Load(_T("../aike/res/background.jpg"));
|
||||
//SetBackground(img);
|
||||
PaintDlg();
|
||||
//PaintDlg();
|
||||
// TODO: 在此添加额外的初始化
|
||||
//PaintDlg();
|
||||
FixedSize();
|
||||
@ -50,47 +51,103 @@ BOOL LogInDlg::OnInitDialog()
|
||||
rt.MoveToXY(270, 240);
|
||||
AddButton(2, rt);
|
||||
SetLClick(2, [this](int i) {CloseClick(i); });
|
||||
if (IsLogin)
|
||||
{
|
||||
GetDlgItem(IDC_EDIT3)->ShowWindow(SW_HIDE);
|
||||
GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
|
||||
GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
|
||||
}
|
||||
else
|
||||
{
|
||||
GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
|
||||
GetDlgItem(IDC_CHECK1)->ShowWindow(SW_HIDE);
|
||||
GetDlgItem(IDC_STATIC1)->SetWindowText(_T("密 码:"));
|
||||
GetDlgItem(IDC_STATIC2)->SetWindowText(_T("确认密码:"));
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
|
||||
VOID LogInDlg::LoginClick(int id)
|
||||
{
|
||||
CString Name, Pass, tmp;
|
||||
GetDlgItemText(IDC_EDIT1, Name);
|
||||
GetDlgItemText(IDC_EDIT2, Pass);
|
||||
BOOL sys = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
|
||||
if (!sys)
|
||||
{
|
||||
if (Name == _T(""))
|
||||
{
|
||||
MessageBox(_T("请输入要登陆的账号"), _T("温馨提示"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
CaikeDlg* dlg = (CaikeDlg*)m_Parent;
|
||||
switch (dlg->CheckUser(Name, Pass, sys))
|
||||
if (IsLogin)
|
||||
{
|
||||
case 0:
|
||||
MessageBox(_T("账号不存在"), _T("温馨提示"));
|
||||
break;
|
||||
case 1:
|
||||
if(sys)
|
||||
CString Name, Pass, tmp;
|
||||
GetDlgItemText(IDC_EDIT1, Name);
|
||||
GetDlgItemText(IDC_EDIT2, Pass);
|
||||
BOOL sys = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
|
||||
if (!sys)
|
||||
{
|
||||
dlg->LogName = _T("系统管理员");
|
||||
if (Name == _T(""))
|
||||
{
|
||||
MessageBox(_T("请输入要登陆的账号"), _T("温馨提示"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dlg->LogName = Name;
|
||||
Name = _T("系统管理员");
|
||||
}
|
||||
switch (dlg->CheckUser(Name, Pass, 1))
|
||||
{
|
||||
case 0:
|
||||
MessageBox(_T("账号不存在,或该账号不允许登录电脑端"), _T("温馨提示"));
|
||||
break;
|
||||
case 1:
|
||||
if (sys)
|
||||
{
|
||||
dlg->LogName = _T("系统管理员");
|
||||
}
|
||||
else
|
||||
{
|
||||
dlg->LogName = Name;
|
||||
}
|
||||
dlg->SetLogInInfo(dlg->LogName);
|
||||
MyDialog::OnOK();
|
||||
break;
|
||||
case 2:
|
||||
MessageBox(_T("密码输入错误"), _T("温馨提示"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CString Pass, Pass1,Pass2, tmp;
|
||||
GetDlgItemText(IDC_EDIT2, Pass);
|
||||
GetDlgItemText(IDC_EDIT3, Pass1);
|
||||
GetDlgItemText(IDC_EDIT4, Pass2);
|
||||
if (Pass != Pass1)
|
||||
{
|
||||
MessageBox(_T("两次输入的密码不一致"), _T("温馨提示"));
|
||||
return;
|
||||
}
|
||||
if (Pass.GetLength() > 16)
|
||||
{
|
||||
MessageBox(_T("密码长度不能超过16位"), _T("温馨提示"));
|
||||
return;
|
||||
}
|
||||
switch (dlg->ChangePass(dlg->LogName, Pass2, Pass))
|
||||
{
|
||||
case 0:
|
||||
MessageBox(_T("账号不存在"), _T("温馨提示"));
|
||||
break;
|
||||
case 1:
|
||||
MessageBox(_T("密码修改成功"), _T("温馨提示"));
|
||||
MyDialog::OnOK();
|
||||
break;
|
||||
case 2:
|
||||
MessageBox(_T("旧密码密码输入错误"), _T("温馨提示"));
|
||||
break;
|
||||
case 3:
|
||||
MessageBox(_T("SQL语句执行错误"), _T("温馨提示"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
dlg->SetLogInInfo(dlg->LogName);
|
||||
MyDialog::OnOK();
|
||||
break;
|
||||
case 2:
|
||||
MessageBox(_T("密码输入错误"), _T("温馨提示"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,26 +158,6 @@ VOID LogInDlg::CloseClick(int id)
|
||||
}
|
||||
|
||||
|
||||
//void LogInDlg::OnBnHotItemChangeCheck1(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
//{
|
||||
// 此功能要求 Internet Explorer 6 或更高版本。
|
||||
// 符号 _WIN32_IE 必须是 >= 0x0600。
|
||||
// LPNMBCHOTITEM pHotItem = reinterpret_cast<LPNMBCHOTITEM>(pNMHDR);
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
|
||||
// *pResult = 0;
|
||||
//}
|
||||
|
||||
|
||||
//void LogInDlg::OnNMThemeChangedCheck1(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
//{
|
||||
// 该功能要求使用 Windows XP 或更高版本。
|
||||
// 符号 _WIN32_WINNT 必须 >= 0x0501。
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
// *pResult = 0;
|
||||
//}
|
||||
|
||||
|
||||
void LogInDlg::OnBnClickedCheck1()
|
||||
{
|
||||
GetDlgItem(IDC_EDIT1)->EnableWindow(!((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck());
|
||||
|
@ -25,8 +25,7 @@ public:
|
||||
virtual BOOL OnInitDialog();
|
||||
VOID LoginClick(int id);
|
||||
VOID CloseClick(int id);
|
||||
// afx_msg void OnBnHotItemChangeCheck1(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
// afx_msg void OnNMThemeChangedCheck1(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnBnClickedCheck1();
|
||||
virtual void OnOK();
|
||||
BOOL IsLogin = TRUE;
|
||||
};
|
||||
|
BIN
aike/aike.rc
BIN
aike/aike.rc
Binary file not shown.
@ -162,6 +162,8 @@ void CaikeDlg::OnCommand(UINT id)
|
||||
MyDialog::OnCancel();
|
||||
break;
|
||||
case IDR_MENU2 + 5:
|
||||
dlg.IsLogin = FALSE;
|
||||
dlg.DoModal();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -467,8 +469,14 @@ BOOL CaikeDlg::CheckAuthority(CString Authority)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
||||
//检查账号密码
|
||||
INT CaikeDlg::CheckUser(CString Name, CString Pass, int type)
|
||||
{
|
||||
BOOL isSystem = FALSE;
|
||||
if (Name == _T("系统管理员"))
|
||||
{
|
||||
isSystem = TRUE;
|
||||
}
|
||||
CString tmp;
|
||||
_RecordsetPtr m_pRecor;
|
||||
_variant_t var;
|
||||
@ -476,7 +484,7 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
||||
{
|
||||
string str = (CStringA)Pass;
|
||||
AES aes;
|
||||
Pass = (CStringA)(aes.EncryptionAES(str, "aikehotel1998092")).c_str();
|
||||
Pass = (CStringA)(aes.EncryptionAES(str, AesKey)).c_str();
|
||||
}
|
||||
if (isSystem)
|
||||
{
|
||||
@ -498,7 +506,21 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp.Format(_T("select Passwords from staff where JobID = '%s' and Computer = '1'"), Name);
|
||||
switch (type)
|
||||
{
|
||||
case 1:
|
||||
tmp.Format(_T("select Passwords from staff where JobID = '%s' and Computer = '1'"), Name);
|
||||
break;
|
||||
case 2:
|
||||
tmp.Format(_T("select Passwords from staff where JobID = '%s' and web = '1'"), Name);
|
||||
break;
|
||||
case 3:
|
||||
tmp.Format(_T("select Passwords from staff where JobID = '%s' and mobile = '1'"), Name);
|
||||
break;
|
||||
default:
|
||||
tmp.Format(_T("select Passwords from staff where JobID = '%s'"), Name);
|
||||
break;
|
||||
}
|
||||
AdoSql.QuerySql(tmp, m_pRecor);
|
||||
if (!m_pRecor->GetadoEOF())
|
||||
{
|
||||
@ -521,6 +543,54 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//修改密码
|
||||
INT CaikeDlg::ChangePass(CString Name, CString OPass, CString NPass)
|
||||
{
|
||||
BOOL isSystem = FALSE;
|
||||
if (Name == _T("系统管理员"))
|
||||
{
|
||||
isSystem = TRUE;
|
||||
}
|
||||
int tmp = CheckUser(Name, OPass, 0);
|
||||
CString sqlStr;
|
||||
if (OPass != _T(""))
|
||||
{
|
||||
string str = (CStringA)OPass;
|
||||
AES aes;
|
||||
OPass = (CStringA)(aes.EncryptionAES(str, AesKey)).c_str();
|
||||
}
|
||||
if (NPass != _T(""))
|
||||
{
|
||||
string str = (CStringA)NPass;
|
||||
AES aes;
|
||||
NPass = (CStringA)(aes.EncryptionAES(str, AesKey)).c_str();
|
||||
}
|
||||
if (tmp ==1)
|
||||
{
|
||||
if (isSystem)
|
||||
{
|
||||
sqlStr.Format(_T("if not exists (select 1 from config where vkey = 'passwords')\r\nINSERT INTO config (vkey,value) VALUES ('passwords','%s')\r\nelse\r\nUPDATE config SET value = '%s' WHERE vkey = 'passwords'"), NPass, NPass);
|
||||
tmp = AdoSql.ImplementSQL(sqlStr);
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlStr.Format(_T("update staff set Passwords = '%s' where JobID = '%s'"), NPass, Name);
|
||||
tmp = AdoSql.ImplementSQL(sqlStr);
|
||||
}
|
||||
if (tmp != TRUE)
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//设置登录信息
|
||||
VOID CaikeDlg::SetLogInInfo(CString info)
|
||||
{
|
||||
CImage img;
|
||||
|
@ -80,8 +80,9 @@ public:
|
||||
VOID MoveAllWin(); //移动所有窗口和按钮
|
||||
VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮
|
||||
BOOL CheckAuthority(CString Authority); //检查权限
|
||||
INT CheckUser(CString Name, CString Pass, BOOL isSystem); //检查账号密码
|
||||
VOID SetLogInInfo(CString info);
|
||||
INT CheckUser(CString Name, CString Pass, int type); //检查账号密码
|
||||
INT ChangePass(CString Name, CString OPass, CString NPass); //修改密码
|
||||
VOID SetLogInInfo(CString info); //设置登录信息
|
||||
VOID SetUpClick(int id); //设置按钮
|
||||
VOID HomepageClick(int id); //回到主页
|
||||
VOID RoomSetUpClick(int id); //点击房间设置
|
||||
|
@ -21,6 +21,11 @@
|
||||
#define IDC_EDIT1 1002
|
||||
#define IDC_EDIT2 1003
|
||||
#define IDC_CHECK1 1004
|
||||
#define IDC_STATIC1 1005
|
||||
#define IDC_STATIC2 1006
|
||||
#define IDC_EDIT3 1007
|
||||
#define IDC_EDIT4 1008
|
||||
#define IDC_STATIC3 1009
|
||||
#define ID_32771 32771
|
||||
#define ID_32772 32772
|
||||
#define ID_SHOW_MENU 32773
|
||||
@ -32,7 +37,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 144
|
||||
#define _APS_NEXT_COMMAND_VALUE 32775
|
||||
#define _APS_NEXT_CONTROL_VALUE 1005
|
||||
#define _APS_NEXT_CONTROL_VALUE 1007
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user