添加修改密码函数以及界面
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(BCN_HOTITEMCHANGE, IDC_CHECK1, &LogInDlg::OnBnHotItemChangeCheck1)
|
||||||
// ON_NOTIFY(NM_THEMECHANGED, IDC_CHECK1, &LogInDlg::OnNMThemeChangedCheck1)
|
// ON_NOTIFY(NM_THEMECHANGED, IDC_CHECK1, &LogInDlg::OnNMThemeChangedCheck1)
|
||||||
ON_BN_CLICKED(IDC_CHECK1, &LogInDlg::OnBnClickedCheck1)
|
ON_BN_CLICKED(IDC_CHECK1, &LogInDlg::OnBnClickedCheck1)
|
||||||
|
ON_WM_CTLCOLOR()
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ BOOL LogInDlg::OnInitDialog()
|
|||||||
CImage img;
|
CImage img;
|
||||||
img.Load(_T("../aike/res/background.jpg"));
|
img.Load(_T("../aike/res/background.jpg"));
|
||||||
//SetBackground(img);
|
//SetBackground(img);
|
||||||
PaintDlg();
|
//PaintDlg();
|
||||||
// TODO: 在此添加额外的初始化
|
// TODO: 在此添加额外的初始化
|
||||||
//PaintDlg();
|
//PaintDlg();
|
||||||
FixedSize();
|
FixedSize();
|
||||||
@ -50,12 +51,29 @@ BOOL LogInDlg::OnInitDialog()
|
|||||||
rt.MoveToXY(270, 240);
|
rt.MoveToXY(270, 240);
|
||||||
AddButton(2, rt);
|
AddButton(2, rt);
|
||||||
SetLClick(2, [this](int i) {CloseClick(i); });
|
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
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
// 异常: OCX 属性页应返回 FALSE
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID LogInDlg::LoginClick(int id)
|
VOID LogInDlg::LoginClick(int id)
|
||||||
{
|
{
|
||||||
|
CaikeDlg* dlg = (CaikeDlg*)m_Parent;
|
||||||
|
if (IsLogin)
|
||||||
|
{
|
||||||
CString Name, Pass, tmp;
|
CString Name, Pass, tmp;
|
||||||
GetDlgItemText(IDC_EDIT1, Name);
|
GetDlgItemText(IDC_EDIT1, Name);
|
||||||
GetDlgItemText(IDC_EDIT2, Pass);
|
GetDlgItemText(IDC_EDIT2, Pass);
|
||||||
@ -68,14 +86,17 @@ VOID LogInDlg::LoginClick(int id)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CaikeDlg* dlg = (CaikeDlg*)m_Parent;
|
else
|
||||||
switch (dlg->CheckUser(Name, Pass, sys))
|
{
|
||||||
|
Name = _T("系统管理员");
|
||||||
|
}
|
||||||
|
switch (dlg->CheckUser(Name, Pass, 1))
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
MessageBox(_T("账号不存在"), _T("温馨提示"));
|
MessageBox(_T("账号不存在,或该账号不允许登录电脑端"), _T("温馨提示"));
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if(sys)
|
if (sys)
|
||||||
{
|
{
|
||||||
dlg->LogName = _T("系统管理员");
|
dlg->LogName = _T("系统管理员");
|
||||||
}
|
}
|
||||||
@ -92,6 +113,42 @@ VOID LogInDlg::LoginClick(int id)
|
|||||||
default:
|
default:
|
||||||
break;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID LogInDlg::CloseClick(int id)
|
VOID LogInDlg::CloseClick(int id)
|
||||||
@ -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()
|
void LogInDlg::OnBnClickedCheck1()
|
||||||
{
|
{
|
||||||
GetDlgItem(IDC_EDIT1)->EnableWindow(!((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck());
|
GetDlgItem(IDC_EDIT1)->EnableWindow(!((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck());
|
||||||
|
@ -25,8 +25,7 @@ public:
|
|||||||
virtual BOOL OnInitDialog();
|
virtual BOOL OnInitDialog();
|
||||||
VOID LoginClick(int id);
|
VOID LoginClick(int id);
|
||||||
VOID CloseClick(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();
|
afx_msg void OnBnClickedCheck1();
|
||||||
virtual void OnOK();
|
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();
|
MyDialog::OnCancel();
|
||||||
break;
|
break;
|
||||||
case IDR_MENU2 + 5:
|
case IDR_MENU2 + 5:
|
||||||
|
dlg.IsLogin = FALSE;
|
||||||
|
dlg.DoModal();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -467,8 +469,14 @@ BOOL CaikeDlg::CheckAuthority(CString Authority)
|
|||||||
return TRUE;
|
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;
|
CString tmp;
|
||||||
_RecordsetPtr m_pRecor;
|
_RecordsetPtr m_pRecor;
|
||||||
_variant_t var;
|
_variant_t var;
|
||||||
@ -476,7 +484,7 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
|||||||
{
|
{
|
||||||
string str = (CStringA)Pass;
|
string str = (CStringA)Pass;
|
||||||
AES aes;
|
AES aes;
|
||||||
Pass = (CStringA)(aes.EncryptionAES(str, "aikehotel1998092")).c_str();
|
Pass = (CStringA)(aes.EncryptionAES(str, AesKey)).c_str();
|
||||||
}
|
}
|
||||||
if (isSystem)
|
if (isSystem)
|
||||||
{
|
{
|
||||||
@ -498,7 +506,21 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
tmp.Format(_T("select Passwords from staff where JobID = '%s' and Computer = '1'"), Name);
|
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);
|
AdoSql.QuerySql(tmp, m_pRecor);
|
||||||
if (!m_pRecor->GetadoEOF())
|
if (!m_pRecor->GetadoEOF())
|
||||||
{
|
{
|
||||||
@ -521,6 +543,54 @@ INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
|
|||||||
return 0;
|
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)
|
VOID CaikeDlg::SetLogInInfo(CString info)
|
||||||
{
|
{
|
||||||
CImage img;
|
CImage img;
|
||||||
|
@ -80,8 +80,9 @@ public:
|
|||||||
VOID MoveAllWin(); //移动所有窗口和按钮
|
VOID MoveAllWin(); //移动所有窗口和按钮
|
||||||
VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮
|
VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮
|
||||||
BOOL CheckAuthority(CString Authority); //检查权限
|
BOOL CheckAuthority(CString Authority); //检查权限
|
||||||
INT CheckUser(CString Name, CString Pass, BOOL isSystem); //检查账号密码
|
INT CheckUser(CString Name, CString Pass, int type); //检查账号密码
|
||||||
VOID SetLogInInfo(CString info);
|
INT ChangePass(CString Name, CString OPass, CString NPass); //修改密码
|
||||||
|
VOID SetLogInInfo(CString info); //设置登录信息
|
||||||
VOID SetUpClick(int id); //设置按钮
|
VOID SetUpClick(int id); //设置按钮
|
||||||
VOID HomepageClick(int id); //回到主页
|
VOID HomepageClick(int id); //回到主页
|
||||||
VOID RoomSetUpClick(int id); //点击房间设置
|
VOID RoomSetUpClick(int id); //点击房间设置
|
||||||
|
@ -21,6 +21,11 @@
|
|||||||
#define IDC_EDIT1 1002
|
#define IDC_EDIT1 1002
|
||||||
#define IDC_EDIT2 1003
|
#define IDC_EDIT2 1003
|
||||||
#define IDC_CHECK1 1004
|
#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_32771 32771
|
||||||
#define ID_32772 32772
|
#define ID_32772 32772
|
||||||
#define ID_SHOW_MENU 32773
|
#define ID_SHOW_MENU 32773
|
||||||
@ -32,7 +37,7 @@
|
|||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 144
|
#define _APS_NEXT_RESOURCE_VALUE 144
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32775
|
#define _APS_NEXT_COMMAND_VALUE 32775
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1005
|
#define _APS_NEXT_CONTROL_VALUE 1007
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user