// DLG_Manager_Modify.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Manager_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Manager_Modify dialog #include "ManagerDlg.h" DLG_Manager_Modify::DLG_Manager_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_Manager_Modify::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Manager_Modify) m_tBirthday = COleDateTime::GetCurrentTime(); m_strBranch = _T(""); m_strBZ = _T(""); m_strEmail = _T(""); m_strFax = _T(""); m_strJob = _T(""); m_bLogin = FALSE; m_strLoginName = _T(""); m_bManager_Add = FALSE; m_bManager_Del = FALSE; m_bManager_Modify = FALSE; m_bManager_ModifyPurview = FALSE; m_bManager_See = FALSE; m_strMobile = _T(""); m_strName = _T(""); m_lSex = -1; m_strTel = _T(""); m_bInfo_See = FALSE; m_strCreateTime = _T(""); m_strLoginCount = _T(""); m_strLoginTime = _T(""); m_bManager_ResetPasswd = FALSE; m_strCreateUser = _T(""); m_bCorp_Add = FALSE; m_bCorp_Del = FALSE; m_bCorp_Pay = FALSE; m_bCorp_See = FALSE; m_bCorp_Modify = FALSE; m_bList = FALSE; m_bTab = FALSE; m_bCorp_User = FALSE; m_bFilt = FALSE; m_bOther = FALSE; m_bSP = FALSE; m_lType = -1; m_lAllQueryCount = 0; m_strQueryCount = _T(""); m_lAllAddSmsCount = 0; //}}AFX_DATA_INIT m_pManagerDlg = (CManagerDlg *)pParent; memset( &m_ManagerData , 0 , sizeof(m_ManagerData)); m_bModifyPurview = true; m_bResetPasswd = false; m_bSetPasswd = false; m_bAdd = false; m_Pos = 0; memset( m_szPasswd , 0 , sizeof(m_szPasswd) ); } void DLG_Manager_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Manager_Modify) DDX_Control(pDX, IDC_MANAGER_MODIFY_PASSWD, m_B_Passwd); DDX_DateTimeCtrl(pDX, IDC_MANAGER_MODIFY_BIRTHDAY, m_tBirthday); DDX_Text(pDX, IDC_MANAGER_MODIFY_BRANCH, m_strBranch); DDV_MaxChars(pDX, m_strBranch, 20); DDX_Text(pDX, IDC_MANAGER_MODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 50); DDX_Text(pDX, IDC_MANAGER_MODIFY_EMAIL, m_strEmail); DDV_MaxChars(pDX, m_strEmail, 30); DDX_Text(pDX, IDC_MANAGER_MODIFY_FAX, m_strFax); DDV_MaxChars(pDX, m_strFax, 20); DDX_Text(pDX, IDC_MANAGER_MODIFY_JOB, m_strJob); DDV_MaxChars(pDX, m_strJob, 20); DDX_Check(pDX, IDC_MANAGER_MODIFY_LOGIN, m_bLogin); DDX_Text(pDX, IDC_MANAGER_MODIFY_LOGINNAME, m_strLoginName); DDV_MaxChars(pDX, m_strLoginName, 16); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_ADD, m_bManager_Add); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_DEL, m_bManager_Del); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_MODIFY, m_bManager_Modify); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_MODIFYPRUVIEW, m_bManager_ModifyPurview); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_SEE, m_bManager_See); DDX_Text(pDX, IDC_MANAGER_MODIFY_MOBILE, m_strMobile); DDV_MaxChars(pDX, m_strMobile, 20); DDX_Text(pDX, IDC_MANAGER_MODIFY_NAME, m_strName); DDV_MaxChars(pDX, m_strName, 16); DDX_CBIndex(pDX, IDC_MANAGER_MODIFY_SEX, m_lSex); DDX_Text(pDX, IDC_MANAGER_MODIFY_TEL, m_strTel); DDV_MaxChars(pDX, m_strTel, 20); DDX_Check(pDX, IDC_MANAGER_MODIFY_INFO_SEE, m_bInfo_See); DDX_Text(pDX, IDC_MANAGER_CREATETIME, m_strCreateTime); DDX_Text(pDX, IDC_MANAGER_LOGINCOUNT, m_strLoginCount); DDX_Text(pDX, IDC_MANAGER_LOGINTIME, m_strLoginTime); DDX_Check(pDX, IDC_MANAGER_MODIFY_MANAGER_RESETPASSWD, m_bManager_ResetPasswd); DDX_Text(pDX, IDC_MANAGER_CREATEUSER, m_strCreateUser); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_ADD, m_bCorp_Add); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_DEL, m_bCorp_Del); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_PAY, m_bCorp_Pay); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_SEE, m_bCorp_See); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_MODIFY, m_bCorp_Modify); DDX_Check(pDX, IDC_MANAGER_MODIFY_LIST, m_bList); DDX_Check(pDX, IDC_MANAGER_MODIFY_TAB, m_bTab); DDX_Check(pDX, IDC_MANAGER_MODIFY_CORP_USER, m_bCorp_User); DDX_Check(pDX, IDC_MANAGER_MODIFY_FILT, m_bFilt); DDX_Check(pDX, IDC_MANAGER_MODIFY_OTHER, m_bOther); DDX_Check(pDX, IDC_MANAGER_MODIFY_SP, m_bSP); DDX_CBIndex(pDX, IDC_MANAGER_MODIFY_TYPE, m_lType); DDX_Text(pDX, IDC_MANAGER_MODIFY_ALLQUERYCOUNT, m_lAllQueryCount); DDV_MinMaxUInt(pDX, m_lAllQueryCount, 0, 100000); DDX_Text(pDX, IDC_MANAGER_QUERYCOUNT, m_strQueryCount); DDX_Text(pDX, IDC_MANAGER_MODIFY_ALLADDSMSCOUNT, m_lAllAddSmsCount); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Manager_Modify, CDialog) //{{AFX_MSG_MAP(DLG_Manager_Modify) ON_BN_CLICKED(IDC_MANAGER_MODIFY_PASSWD, OnManagerModifyPasswd) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Manager_Modify message handlers BOOL DLG_Manager_Modify::OnInitDialog() { CDialog::OnInitDialog(); m_strLoginName = m_ManagerData.szLoginName; m_strName = m_ManagerData.szName; m_lType = m_ManagerData.lType; m_strLoginName = m_ManagerData.szLoginName; long lSex = 0; if ( CString(m_ManagerData.szSex)==_T("男") ) lSex = 1; if ( CString(m_ManagerData.szSex)==_T("女") ) lSex = 2; m_lSex = lSex; COleDateTime tTemp(m_ManagerData.tBirthday); if ( tTemp.GetStatus() != 0 ) //无效时间 { m_tBirthday.SetStatus( COleDateTime::null ); } else { m_tBirthday = tTemp; } m_strBranch = m_ManagerData.szBranch; m_strJob = m_ManagerData.szJob; m_strTel = m_ManagerData.szTel; m_strFax = m_ManagerData.szFax; m_strMobile = m_ManagerData.szMobile; m_strEmail = m_ManagerData.szEmail; m_strBZ = m_ManagerData.szBZ; m_lAllQueryCount = m_ManagerData.lAllQueryCorpIDCount; m_lAllAddSmsCount = m_ManagerData.lAllAddSmsCount; m_strCreateUser = m_ManagerData.szCreateUser; m_strCreateTime.Format( _T("%04d.%02d.%02d %02d:%02d:%02d") , m_ManagerData.tCreateTime.wYear,m_ManagerData.tCreateTime.wMonth,m_ManagerData.tCreateTime.wDay,m_ManagerData.tCreateTime.wHour,m_ManagerData.tCreateTime.wMinute,m_ManagerData.tCreateTime.wSecond ); m_strLoginTime.Format( _T("%04d.%02d.%02d %02d:%02d:%02d") , m_ManagerData.tLoginTime.wYear,m_ManagerData.tLoginTime.wMonth,m_ManagerData.tLoginTime.wDay,m_ManagerData.tLoginTime.wHour,m_ManagerData.tLoginTime.wMinute,m_ManagerData.tLoginTime.wSecond ); m_strLoginCount.Format( _T("%d") , m_ManagerData.lLoginCount ); m_strQueryCount.Format(_T("%d/%d") , m_ManagerData.lQueryCorpIDCount,m_ManagerData.lAllQueryCorpIDCount); //权限 m_bLogin = m_ManagerData.ulPurview & PURVIEW_LOGIN ? true:false; m_bInfo_See = m_ManagerData.ulPurview & PURVIEW_INFO_SEE? true:false; m_bManager_See = m_ManagerData.ulPurview & PURVIEW_MANAGER_SEE? true:false; m_bManager_Modify = m_ManagerData.ulPurview & PURVIEW_MANAGER_MODIFY? true:false; m_bManager_ModifyPurview = m_ManagerData.ulPurview & PURVIEW_MANAGER_MODIFYPURVIEW? true:false; m_bManager_ResetPasswd = m_ManagerData.ulPurview & PURVIEW_MANAGER_RESETPASSWD ? true:false; m_bManager_Add = m_ManagerData.ulPurview & PURVIEW_MANAGER_ADD? true:false; m_bManager_Del = m_ManagerData.ulPurview & PURVIEW_MANAGER_DEL? true:false; m_bCorp_See = m_ManagerData.ulPurview & PURVIEW_CORP_SEE ? true:false; m_bCorp_Modify = m_ManagerData.ulPurview & PURVIEW_CORP_MODIFY? true:false; m_bCorp_Add = m_ManagerData.ulPurview & PURVIEW_CORP_ADD ? true:false; m_bCorp_Del = m_ManagerData.ulPurview & PURVIEW_CORP_DEL ? true:false; m_bCorp_Pay = m_ManagerData.ulPurview & PURVIEW_CORP_PAY ? true:false; m_bCorp_User = m_ManagerData.ulPurview & PURVIEW_CORP_USER ? true:false; m_bTab = m_ManagerData.ulPurview & PURVIEW_TAB ? true:false; m_bList = m_ManagerData.ulPurview & PURVIEW_LIST ? true:false; m_bFilt = m_ManagerData.ulPurview & PURVIEW_FILT ? true:false; m_bOther = m_ManagerData.ulPurview & PURVIEW_OTHER ? true:false; m_bSP = m_ManagerData.ulPurview & PURVIEW_SP ? true:false; UpdateData(false); if ( m_bAdd ) { this->OnManagerModifyPasswd(); //因为是添加管理员,所以先要设置密码 } if ( !m_bResetPasswd ) { m_B_Passwd.EnableWindow( false ); } if (!m_bModifyPurview) { GetDlgItem(IDC_MANAGER_MODIFY_LOGIN)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_INFO_SEE)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_SEE)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_MODIFY)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_MODIFYPRUVIEW)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_RESETPASSWD)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_ADD)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_DEL)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_SEE)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_MODIFY)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_ADD)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_DEL)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_PAY)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_CORP_USER)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_TAB)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_LIST)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_FILT)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_SP)->EnableWindow(false); GetDlgItem(IDC_MANAGER_MODIFY_OTHER)->EnableWindow(false); } else { //如果自己没有的权限,也不能分配给别人 if ( !(m_ulMainPurview & PURVIEW_LOGIN) ) GetDlgItem(IDC_MANAGER_MODIFY_LOGIN)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_INFO_SEE) ) GetDlgItem(IDC_MANAGER_MODIFY_INFO_SEE)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_SEE) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_SEE)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_MODIFY) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_MODIFY)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_MODIFYPURVIEW) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_MODIFYPRUVIEW)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_RESETPASSWD) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_RESETPASSWD)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_ADD) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_ADD)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_MANAGER_DEL) ) GetDlgItem(IDC_MANAGER_MODIFY_MANAGER_DEL)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_SEE) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_SEE)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_MODIFY) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_MODIFY)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_ADD) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_ADD)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_DEL) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_DEL)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_PAY) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_PAY)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_CORP_USER) ) GetDlgItem(IDC_MANAGER_MODIFY_CORP_USER)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_TAB) ) GetDlgItem(IDC_MANAGER_MODIFY_TAB)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_LIST) ) GetDlgItem(IDC_MANAGER_MODIFY_LIST)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_FILT) ) GetDlgItem(IDC_MANAGER_MODIFY_FILT)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_SP) ) GetDlgItem(IDC_MANAGER_MODIFY_SP)->EnableWindow(false); if ( !(m_ulMainPurview & PURVIEW_OTHER) ) GetDlgItem(IDC_MANAGER_MODIFY_OTHER)->EnableWindow(false); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Manager_Modify::SetParam(ANS_GetManagerData data,POSITION pos,ULONG ulPurview,BOOL bModifyPurview,BOOL bResetPasswd,BOOL bAdd) { m_ManagerData = data; m_bModifyPurview = bModifyPurview; m_bResetPasswd = bResetPasswd; m_bAdd = bAdd; m_Pos = pos; m_ulMainPurview = ulPurview; if ( _tcslen(m_ManagerData.szLoginName) > 0 ) { char szUser[32]={0}; char szPasswd[64]={0}; char szPasswd2[64]={0}; #ifdef _UNICODE strcpy(szUser , CW2A(m_ManagerData.szLoginName) ); strcpy(szPasswd , CW2A(m_ManagerData.szPasswd)); #else strcpy(szUser , m_ManagerData.szLoginName ); strcpy(szPasswd , m_ManagerData.szPasswd); #endif CDes des; long lOut=sizeof(szPasswd2); des.Decrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 ); #ifdef _UNICODE _tcscpy(m_szPasswd , CA2W(szPasswd2)); #else strcpy(m_szPasswd , szPasswd2); #endif } } ANS_GetManagerData DLG_Manager_Modify::GetParam() { return m_ManagerData; } void DLG_Manager_Modify::OnOK() { UpdateData(true); BOOL bReMakePasswd = false; if (m_strLoginName.GetLength() <= 0 ) { GetDlgItem(IDC_MANAGER_MODIFY_LOGINNAME)->SetFocus(); MessageBox( _T("登录名不能为空,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } if ( CString(m_ManagerData.szLoginName) != m_strLoginName) bReMakePasswd = true; _tcscpy( m_ManagerData.szLoginName , m_strLoginName ); _tcscpy( m_ManagerData.szName , m_strName ); m_ManagerData.lType = m_lType; if ( m_lSex == 0 ) _tcscpy( m_ManagerData.szSex , _T("") ); else if ( m_lSex == 1 ) _tcscpy( m_ManagerData.szSex , _T("男") ); else _tcscpy( m_ManagerData.szSex , _T("女") ); _tcscpy( m_ManagerData.szBranch , m_strBranch ); _tcscpy( m_ManagerData.szJob , m_strJob ); _tcscpy( m_ManagerData.szTel , m_strTel ); _tcscpy( m_ManagerData.szFax , m_strFax ); _tcscpy( m_ManagerData.szMobile , m_strMobile ); _tcscpy( m_ManagerData.szEmail , m_strEmail ); _tcscpy( m_ManagerData.szBZ , m_strBZ ); if ( m_tBirthday.GetStatus() == 0 ) m_tBirthday.GetAsSystemTime( m_ManagerData.tBirthday ); else memset(&m_ManagerData.tBirthday,0,sizeof(m_ManagerData.tBirthday)); m_ManagerData.lAllQueryCorpIDCount = m_lAllQueryCount; m_ManagerData.lAllAddSmsCount = m_lAllAddSmsCount; if ( m_bModifyPurview ) { m_ManagerData.ulPurview = 0; if ( m_bLogin ) m_ManagerData.ulPurview |= PURVIEW_LOGIN ; if ( m_bInfo_See ) m_ManagerData.ulPurview |= PURVIEW_INFO_SEE ; if ( this->m_bManager_See ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_SEE; if ( this->m_bManager_Modify ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_MODIFY; if ( this->m_bManager_ModifyPurview ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_MODIFYPURVIEW; if ( this->m_bManager_ResetPasswd ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_RESETPASSWD; if ( this->m_bManager_Add ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_ADD; if ( this->m_bManager_Del ) m_ManagerData.ulPurview |= PURVIEW_MANAGER_DEL; if ( this->m_bCorp_See ) m_ManagerData.ulPurview |= PURVIEW_CORP_SEE; if ( this->m_bCorp_Modify ) m_ManagerData.ulPurview |= PURVIEW_CORP_MODIFY; if ( this->m_bCorp_Add ) m_ManagerData.ulPurview |= PURVIEW_CORP_ADD; if ( this->m_bCorp_Del ) m_ManagerData.ulPurview |= PURVIEW_CORP_DEL; if ( this->m_bCorp_Pay ) m_ManagerData.ulPurview |= PURVIEW_CORP_PAY; if ( this->m_bCorp_User ) m_ManagerData.ulPurview |= PURVIEW_CORP_USER; if ( this->m_bTab ) m_ManagerData.ulPurview |= PURVIEW_TAB; if ( this->m_bList ) m_ManagerData.ulPurview |= PURVIEW_LIST; if ( this->m_bFilt ) m_ManagerData.ulPurview |= PURVIEW_FILT; if ( this->m_bSP ) m_ManagerData.ulPurview |= PURVIEW_SP; if ( this->m_bOther ) m_ManagerData.ulPurview |= PURVIEW_OTHER; } //取得新密码 if ( m_bResetPasswd && m_bSetPasswd ) //有重置密码的权限并且已重置过密码 { bReMakePasswd = true; m_B_Passwd.GetWindowText(m_szPasswd , sizeof(m_szPasswd)); } if ( bReMakePasswd ) { char szUser[32]={0}; char szPasswd[64]={0}; char szPasswd2[64]={0}; #ifdef _UNICODE strcpy(szUser , CW2A(m_ManagerData.szLoginName) ); strcpy(szPasswd , CW2A(m_szPasswd)); #else strcpy(szUser , m_ManagerData.szLoginName ); strcpy(szPasswd , m_szPasswd); #endif CDes des; long lOut=sizeof(szPasswd2); des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 ); #ifdef _UNICODE _tcscpy(m_ManagerData.szPasswd , CA2W(szPasswd2)); #else strcpy(m_ManagerData.szPasswd , szPasswd2); #endif } if ( m_pManagerDlg && m_pManagerDlg->FindManagerLoginName( m_ManagerData.szLoginName,m_Pos ) ) { GetDlgItem(IDC_MANAGER_MODIFY_LOGINNAME)->SetFocus(); MessageBox( _T("登录名已在使用,请更换另外登录名!") , _T("错误") , MB_ICONWARNING ); return ; } CDialog::OnOK(); } void DLG_Manager_Modify::OnManagerModifyPasswd() { m_bSetPasswd = true; srand(::GetTickCount()); CString strTemp; strTemp.Format( _T("%03d%03d") , rand(),rand()); strTemp.SetAt( 6 , 0 ); //strTemp = _T("123456"); m_B_Passwd.SetWindowText(strTemp); }