// DLG_User_Modify.cpp : implementation file // #include "stdafx.h" #include "CorpSms.h" #include "DLG_User_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_User_Modify dialog #include "MainFrm.h" #include "FGAddress.h" #include "DLG_UserSelect.h" DLG_User_Modify::DLG_User_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_User_Modify::IDD, pParent) { //{{AFX_DATA_INIT(DLG_User_Modify) m_bGAddress_Add = FALSE; m_bGAddress_Del = FALSE; m_bGAddress_Modify = FALSE; m_bGAddress_See = FALSE; m_tBirthday = COleDateTime::GetCurrentTime(); m_bLogin = FALSE; m_bRecvG = FALSE; m_bRecvP = FALSE; m_bSeeBill = FALSE; m_bSeeList = FALSE; m_bSendG = FALSE; m_bSendP = FALSE; m_strBZ = _T(""); m_strCreateTime = _T(""); m_strEmail = _T(""); m_strFax = _T(""); m_strJob = _T(""); m_strLoginCount = _T(""); m_strLoginName = _T(""); m_strMobile = _T(""); m_strName = _T(""); m_strNickName = _T(""); m_strQQ = _T(""); m_lSex = -1; m_strNum = _T(""); m_strSMSSendedAll = _T(""); m_strSMSUsed = _T(""); m_strTel = _T(""); m_strLoginMsg = _T(""); m_strLocal = _T(""); m_bPAddress = FALSE; m_lPurviewType = -1; m_bSmsEmail = FALSE; m_bCalendar = FALSE; m_bSP = FALSE; m_strGroup = _T(""); m_bGAddress_UserManager = FALSE; m_bGAddress_UserModify = FALSE; m_strCreateUser = _T(""); m_strMmsUsed = _T(""); m_strMmsSendedAll = _T(""); m_bHideNum = FALSE; m_bPL = FALSE; m_bPL_Audit = FALSE; m_bPL_Verify = FALSE; //}}AFX_DATA_INIT m_pFGAddress = (CFGAddress *)pParent; m_AdoRS.SetAdoConnection( &m_pFGAddress->m_pMainFrame->m_adoConnection ); memset( &m_Address , 0 , sizeof(m_Address)); m_bModifyPurview = true; m_bResetPasswd = true; m_bSetPasswd = false; m_bAdd = false; m_bModify = false; m_bGJ = false; m_lCorpID = 0; m_lUserID = 0; memset( m_szPasswd , 0 , sizeof(m_szPasswd) ); memset( m_szIP , 0 , sizeof(m_szIP)); memset( m_szLocal,0, sizeof(m_szLocal)); m_bAutoSetPasswd = false; } void DLG_User_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_User_Modify) DDX_Control(pDX, IDC_USERMODIFY_S1, m_S_S1); DDX_Control(pDX, IDC_USERMODIFY_PASSWD, m_B_Passwd); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_ADD, m_bGAddress_Add); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_DEL, m_bGAddress_Del); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_MODIFY, m_bGAddress_Modify); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_SEE, m_bGAddress_See); DDX_DateTimeCtrl(pDX, IDC_USERMODIFY_BIRTHDAY, m_tBirthday); DDX_Check(pDX, IDC_USERMODIFY_BLOGIN, m_bLogin); DDX_Check(pDX, IDC_USERMODIFY_BRECVG, m_bRecvG); DDX_Check(pDX, IDC_USERMODIFY_BRECVP, m_bRecvP); DDX_Check(pDX, IDC_USERMODIFY_BSEEBILL, m_bSeeBill); DDX_Check(pDX, IDC_USERMODIFY_BSEELIST, m_bSeeList); DDX_Check(pDX, IDC_USERMODIFY_BSENDGADDRESS, m_bSendG); DDX_Check(pDX, IDC_USERMODIFY_BSENDPADDRESS, m_bSendP); DDX_Text(pDX, IDC_USERMODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 49); DDX_Text(pDX, IDC_USERMODIFY_CREATETIME, m_strCreateTime); DDX_Text(pDX, IDC_USERMODIFY_EMAIL, m_strEmail); DDV_MaxChars(pDX, m_strEmail, 28); DDX_Text(pDX, IDC_USERMODIFY_FAX, m_strFax); DDV_MaxChars(pDX, m_strFax, 15); DDX_Text(pDX, IDC_USERMODIFY_JOB, m_strJob); DDV_MaxChars(pDX, m_strJob, 15); DDX_Text(pDX, IDC_USERMODIFY_LOGINCOUNT, m_strLoginCount); DDX_Text(pDX, IDC_USERMODIFY_LOGINNAME, m_strLoginName); DDV_MaxChars(pDX, m_strLoginName, 15); DDX_Text(pDX, IDC_USERMODIFY_MOBILE, m_strMobile); DDV_MaxChars(pDX, m_strMobile, 15); DDX_Text(pDX, IDC_USERMODIFY_NAME, m_strName); DDV_MaxChars(pDX, m_strName, 15); DDX_Text(pDX, IDC_USERMODIFY_NICKNAME, m_strNickName); DDV_MaxChars(pDX, m_strNickName, 15); DDX_Text(pDX, IDC_USERMODIFY_QQ, m_strQQ); DDV_MaxChars(pDX, m_strQQ, 15); DDX_CBIndex(pDX, IDC_USERMODIFY_SEX, m_lSex); DDX_Text(pDX, IDC_USERMODIFY_SMSNUM, m_strNum); DDX_Text(pDX, IDC_USERMODIFY_SMSSENDEDALL, m_strSMSSendedAll); DDX_CBString(pDX, IDC_USERMODIFY_SMSUSED, m_strSMSUsed); DDV_MaxChars(pDX, m_strSMSUsed, 8); DDX_Text(pDX, IDC_USERMODIFY_TEL, m_strTel); DDV_MaxChars(pDX, m_strTel, 15); DDX_Text(pDX, IDC_USERMODIFY_LOGINMSG, m_strLoginMsg); DDX_Text(pDX, IDC_USERMODIFY_LOCAL, m_strLocal); DDX_Check(pDX, IDC_USERMODIFY_BPADDRESS, m_bPAddress); DDX_CBIndex(pDX, IDC_USERMODIFY_PURVIEWTYPE, m_lPurviewType); DDX_Check(pDX, IDC_USERMODIFY_SMSEMAIL, m_bSmsEmail); DDX_Check(pDX, IDC_USERMODIFY_CALENDAR, m_bCalendar); DDX_Check(pDX, IDC_USERMODIFY_SMSSP, m_bSP); DDX_Text(pDX, IDC_USERMODIFY_GOUPR, m_strGroup); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_USER_MANAGER, m_bGAddress_UserManager); DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY, m_bGAddress_UserModify); DDX_Text(pDX, IDC_USERMODIFY_CREATEUSER, m_strCreateUser); DDX_CBString(pDX, IDC_USERMODIFY_MMSUSED, m_strMmsUsed); DDV_MaxChars(pDX, m_strMmsUsed, 8); DDX_Text(pDX, IDC_USERMODIFY_MMSSENDEDALL, m_strMmsSendedAll); DDX_Check(pDX, IDC_USERMODIFY_HIDENUM, m_bHideNum); DDX_Check(pDX, IDC_USERMODIFY_BPL, m_bPL); DDX_Check(pDX, IDC_USERMODIFY_BPL_AUDIT, m_bPL_Audit); DDX_Check(pDX, IDC_USERMODIFY_BPL_VERIFY, m_bPL_Verify); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_User_Modify, CDialog) //{{AFX_MSG_MAP(DLG_User_Modify) ON_BN_CLICKED(IDC_USERMODIFY_PASSWD, OnUsermodifyPasswd) ON_EN_CHANGE(IDC_USERMODIFY_LOGINNAME, OnChangeUsermodifyLoginname) ON_EN_KILLFOCUS(IDC_USERMODIFY_NAME, OnKillfocusUsermodifyName) ON_BN_CLICKED(IDC_USERMODIFY_BLOGIN, OnUsermodifyBlogin) ON_BN_CLICKED(IDC_USERMODIFY_SMSNUM_AUTO, OnUsermodifySmsnumAuto) ON_BN_CLICKED(IDC_USERMODIFY_PURVIEWGJ, OnUsermodifyPurviewgj) ON_CBN_SELCHANGE(IDC_USERMODIFY_PURVIEWTYPE, OnSelchangeUsermodifyPurviewtype) ON_BN_CLICKED(IDC_USERMODIFY_GROUP_SEL, OnUsermodifyGroupSel) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_User_Modify::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &DLG_User_Modify::OnBnClickedCancel) ON_WM_TIMER() END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_User_Modify message handlers BOOL DLG_User_Modify::OnInitDialog() { CDialog::OnInitDialog(); CString strTemp; m_strLoginName = m_Address.szLoginName; m_strNum = m_Address.szSMSNum; if ( m_Address.lSMSUsed == -100 ) //无限制 { m_strSMSUsed = _T("无限制"); } else { m_strSMSUsed.Format( _T("%d") , m_Address.lSMSUsed ); } if ( m_Address.lMmsUsed == -100 ) //无限制 { m_strMmsUsed = _T("无限制"); } else { m_strMmsUsed.Format( _T("%d") , m_Address.lMmsUsed ); } m_strName = m_Address.szName; m_strNickName = m_Address.szNickName; long lSex = 0; if ( CString(m_Address.szSex)==_T("男") ) lSex = 1; if ( CString(m_Address.szSex)==_T("女") ) lSex = 2; m_lSex = lSex; COleDateTime tTemp(m_Address.tBirthday); if ( tTemp.GetStatus() != COleDateTime::valid ) //无效时间 { m_tBirthday.SetStatus( COleDateTime::null ); } else { m_tBirthday = tTemp; } m_strJob = m_Address.szJob; m_strTel = m_Address.szTel; m_strFax = m_Address.szFax; m_strMobile = m_Address.szMobile; m_strEmail = m_Address.szEmail; m_strQQ = m_Address.szQQ; m_strBZ = m_Address.szBZ; m_strLocal = m_szLocal; m_strSMSSendedAll.Format( _T("%d") , m_Address.lSMSSendAll ); m_strMmsSendedAll.Format( _T("%d") , m_Address.lMmsSendAll ); m_strCreateUser = m_Address.szCreateUser; m_strCreateTime.Format( _T("%04d.%02d.%02d") , m_Address.tCreateTime.wYear,m_Address.tCreateTime.wMonth,m_Address.tCreateTime.wDay); m_strLoginCount.Format( _T("%d") , m_Address.lLoginCount ); //权限类型 m_lPurviewType = m_Address.ulPurviewType; //权限 m_bLogin = m_Address.ulPurview & PURVIEW_LOGIN ? true:false; m_bSendG = m_Address.ulPurview & PURVIEW_SENDG? true:false; m_bSendP = m_Address.ulPurview & PURVIEW_SENDP? true:false; m_bRecvG = m_Address.ulPurview & PURVIEW_RECVG? true:false; m_bRecvP = m_Address.ulPurview & PURVIEW_RECVP? true:false; m_bSeeBill = m_Address.ulPurview & PURVIEW_SEEBILL? true:false; m_bSeeList = m_Address.ulPurview & PURVIEW_SEELIST? true:false; m_bPL = m_Address.ulPurview & PURVIEW_PL? true:false; m_bPL_Verify = m_Address.ulPurview & PURVIEW_PL_VERIFY? true:false; m_bPL_Audit = m_Address.ulPurview & PURVIEW_PL_AUDIT? true:false; m_bGAddress_See = m_Address.ulPurview & PURVIEW_GADDRESS_SEE? true:false; m_bGAddress_Modify = m_Address.ulPurview & PURVIEW_GADDRESS_MODIFY? true:false; m_bGAddress_UserManager = m_Address.ulPurview & PURVIEW_USER_MANAGER? true:false; m_bGAddress_UserModify = m_Address.ulPurview & PURVIEW_USER_MODIFY ? true:false; m_bGAddress_Add = m_Address.ulPurview & PURVIEW_GADDRESS_ADD? true:false; m_bGAddress_Del = m_Address.ulPurview & PURVIEW_GADDRESS_DEL? true:false; m_bPAddress = m_Address.ulPurview & PURVIEW_PADDRESS? true:false; m_bSmsEmail = m_Address.ulPurview & PURVIEW_SMSEMAIL? true:false; m_bCalendar = m_Address.ulPurview & PURVIEW_CALENDAR? true:false; m_bSP = m_Address.ulPurview & PURVIEW_SMSSP? true:false; m_bHideNum = m_Address.ulPurview & PURVIEW_HIDENUM? true:false; if ( m_Address.lAccessGroupID<=0 ) { m_strGroup = _T("所有用户组"); } else { strTemp.Format( _T("select * from gaddress where userid=%d"),m_Address.lAccessGroupID ); if ( m_AdoRS.Open(strTemp) && !m_AdoRS.IsEOF() ) { m_AdoRS.GetCollect( _T("Name") , m_strGroup); } } UpdateData(false); /* if ( !m_bResetPasswd ) { m_B_Passwd.EnableWindow( false ); } */ /* if ( !m_bModify ) //没有修改权限 { GetDlgItem(IDOK)->EnableWindow(false); } */ if ( m_lUserID == m_Address.lUserID ) //自己不能重置密码 { GetDlgItem(IDC_USERMODIFY_PASSWD)->EnableWindow(false); } if (!m_bModifyPurview) { DisableAllPurview(); } else { if ( m_ulMainPurviewType != PURVIEWTYPE_ADMIN ) //管理员权限,可以任意分配权限,不受限制 { //如果自己没有的权限,也不能分配给别人 if ( !(m_ulMainPurview & PURVIEW_LOGIN) ) { GetDlgItem(IDC_USERMODIFY_BLOGIN)->EnableWindow(false); m_bLogin = false; } if ( !(m_ulMainPurview & PURVIEW_SENDG) ) { GetDlgItem(IDC_USERMODIFY_BSENDGADDRESS)->EnableWindow(false); m_bSendG = false; } if ( !(m_ulMainPurview & PURVIEW_SENDP) ) { GetDlgItem(IDC_USERMODIFY_BSENDPADDRESS)->EnableWindow(false); m_bSendP = false; } if ( !(m_ulMainPurview & PURVIEW_RECVG) ) { GetDlgItem(IDC_USERMODIFY_BRECVG)->EnableWindow(false); m_bRecvG = false; } if ( !(m_ulMainPurview & PURVIEW_RECVP) ) { GetDlgItem(IDC_USERMODIFY_BRECVP)->EnableWindow(false); m_bRecvP = false; } if ( !(m_ulMainPurview & PURVIEW_SEEBILL) ) { GetDlgItem(IDC_USERMODIFY_BSEEBILL)->EnableWindow(false); m_bSeeBill = false; } if ( !(m_ulMainPurview & PURVIEW_SEELIST) ) { GetDlgItem(IDC_USERMODIFY_BSEELIST)->EnableWindow(false); m_bSeeList = false; } if ( !(m_ulMainPurview & PURVIEW_PL) ) { GetDlgItem(IDC_USERMODIFY_BPL)->EnableWindow(false); m_bPL = false; } if ( !(m_ulMainPurview & PURVIEW_PL_AUDIT) ) { GetDlgItem(IDC_USERMODIFY_BPL_AUDIT)->EnableWindow(false); m_bPL_Audit = false; } if ( !(m_ulMainPurview & PURVIEW_PL_VERIFY) ) { GetDlgItem(IDC_USERMODIFY_BPL_VERIFY)->EnableWindow(false); m_bPL_Verify = false; } if ( !(m_ulMainPurview & PURVIEW_GADDRESS_SEE) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_SEE)->EnableWindow(false); m_bGAddress_See = false; } if ( !(m_ulMainPurview & PURVIEW_GADDRESS_MODIFY) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_MODIFY)->EnableWindow(false); m_bGAddress_Modify = false; } if ( !(m_ulMainPurview & PURVIEW_GADDRESS_ADD ) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_ADD)->EnableWindow(false); m_bGAddress_Add = false; } if ( !(m_ulMainPurview & PURVIEW_GADDRESS_DEL) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_DEL)->EnableWindow(false); m_bGAddress_Del = false; } if ( !(m_ulMainPurview & PURVIEW_USER_MANAGER ) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_MANAGER)->EnableWindow(false); m_bGAddress_UserManager = false; } if ( !(m_ulMainPurview & PURVIEW_USER_MODIFY ) ) { GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY)->EnableWindow(false); m_bGAddress_UserModify = false; } if ( !(m_ulMainPurview & PURVIEW_PADDRESS) ) { GetDlgItem(IDC_USERMODIFY_BPADDRESS)->EnableWindow(false); m_bPAddress = false; } if ( !(m_ulMainPurview & PURVIEW_SMSEMAIL) ) { GetDlgItem(IDC_USERMODIFY_SMSEMAIL)->EnableWindow(false); m_bSmsEmail = false; } if ( !(m_ulMainPurview & PURVIEW_CALENDAR) ) { GetDlgItem(IDC_USERMODIFY_CALENDAR)->EnableWindow(false); m_bCalendar = false; } if ( !(m_ulMainPurview & PURVIEW_SMSSP) ) { GetDlgItem(IDC_USERMODIFY_SMSSP)->EnableWindow(false); m_bSP = false; } /* if ( !(m_ulMainPurview & PURVIEW_HIDENUM) ) { GetDlgItem(IDC_USERMODIFY_HIDENUM)->EnableWindow(false); m_bHideNum = false; } */ } } UpdateData(false); if ( m_bAdd ) { SetTimer(1, 100,NULL); //启用生成密码操作。 } ShowLoginMsg(); //显示登录信息 OnUsermodifyBlogin(); //是否是否有登录权限 OnUsermodifyPurviewgj(); //不显示高级选项 CEdit * pEdit = (CEdit *)GetDlgItem(IDC_USERMODIFY_SMSNUM); long lUserNumLen = m_pFGAddress->m_pMainFrame->m_Ans_Login.lUserNumLen; //取用户可分配号码长度 pEdit->LimitText(lUserNumLen); #ifndef SUPPER_FUNC_MMS GetDlgItem(IDC_USERMODIFY_MMSUSED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_USERMODIFY_MMSUSED_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_USERMODIFY_MMSSENDEDALL)->ShowWindow(SW_HIDE); GetDlgItem(IDC_USERMODIFY_MMSSENDEDALL_S)->ShowWindow(SW_HIDE); #endif m_tooltip.Create(this); m_tooltip.AddTool(GetDlgItem(IDC_USERMODIFY_PASSWD), _T("重置的新密码必须要确认后才生效!")); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_User_Modify::OnUsermodifyPasswd() { m_bSetPasswd = true; CString strTemp; /* srand(::GetTickCount()); strTemp.Format( _T("%03d%03d") , rand(),rand()); strTemp.SetAt( 6 , 0 ); */ //strTemp = ::LuGetRandPassword(); #ifdef SMSCENTER_DGSB //东莞社保的版本,对密码有特殊要求 strTemp = ::Passwd_Create(8, 1); #else strTemp = ::Passwd_Create(8, 0); #endif m_B_Passwd.SetWindowText(strTemp); ShowLoginMsg(); RECT rect = { 0 }; GetDlgItem(IDC_USERMODIFY_PASSWD)->GetWindowRect(&rect); POINT pt = { 0 }; pt.x = rect.left; pt.y = rect.top; if (!m_bAutoSetPasswd) m_tooltip.ShowHelpTooltip(&pt, _T("重置密码成功,确认退出此窗口后生效!")); } ANS_GAddress_SeeData DLG_User_Modify::GetParam() { return m_Address; } void DLG_User_Modify::SetParam(ANS_GAddress_SeeData data, ULONG ulPurviewType,ULONG ulPurview, long lCorpID,long lUserID,const TCHAR * pIP,TCHAR *pLocal,BOOL bAdd) { //USES_CONVERSION; m_Address = data; m_ulMainPurviewType = ulPurviewType; m_ulOldPurviewType = ulPurviewType; m_ulMainPurview = ulPurview; m_bModify = ulPurview&PURVIEW_GADDRESS_MODIFY; m_bGAddress_UserManager = ulPurview&PURVIEW_USER_MANAGER; m_bGAddress_UserModify = ulPurview&PURVIEW_USER_MODIFY; m_bAdd = bAdd; m_lUserID = lUserID; m_lCorpID = lCorpID; _tcscpy( m_szIP , pIP ); _tcscpy( m_szLocal , pLocal ); if ( _tcslen(m_Address.szLoginName) > 0 ) { CDes des; #ifdef UNICODE char szPasswd[64]={0}; char szPasswd2[64]={0}; char szUser[64]={0}; strcpy( szPasswd , CW2A(m_Address.szPasswd) ); strcpy( szUser , CW2A(m_Address.szLoginName ) ); long lLen=sizeof(szPasswd2); des.Decrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 ); _tcscpy(m_szPasswd,CA2W(szPasswd2)); #else long lOut = sizeof(m_szPasswd); des.Decrypt( m_Address.szPasswd,_tcslen(m_Address.szPasswd) , m_szPasswd , lOut,m_Address.szLoginName,8); #endif } } void DLG_User_Modify::ShowLoginMsg() { UpdateData(true); if (m_bSetPasswd) { CString strPasswd ; m_B_Passwd.GetWindowText(strPasswd); #ifndef MOBSET_OEM m_strLoginMsg.Format( _T("服务器地址:%s\r\n企业ID:%d\r\n登录用户:%s\r\n密码:%s\r\n"),m_szIP,m_lCorpID,m_strLoginName,strPasswd ); #else m_strLoginMsg.Format( _T("企业ID:%d\r\n登录用户:%s\r\n密码:%s\r\n"),m_lCorpID,m_strLoginName,strPasswd ); #endif } else { #ifndef MOBSET_OEM m_strLoginMsg.Format( _T("服务器地址:%s\r\n企业ID:%d\r\n登录用户:%s\r\n密码:******\r\n"),m_szIP,m_lCorpID,m_strLoginName ); #else m_strLoginMsg.Format( _T("企业ID:%d\r\n登录用户:%s\r\n密码:******\r\n"),m_lCorpID,m_strLoginName ); #endif } UpdateData(false); } void DLG_User_Modify::OnChangeUsermodifyLoginname() { ShowLoginMsg(); } void DLG_User_Modify::OnKillfocusUsermodifyName() { UpdateData(true); if ( m_strLoginName.GetLength() <= 0 && m_bLogin) { m_strLoginName = m_strName; UpdateData(false); ShowLoginMsg(); } } void DLG_User_Modify::OnUsermodifyBlogin() { CButton * pButton = (CButton *)GetDlgItem(IDC_USERMODIFY_BLOGIN); if ( pButton->GetCheck() ) { GetDlgItem(IDC_USERMODIFY_LOGINNAME)->EnableWindow(true); if ( m_bResetPasswd && m_lUserID != m_Address.lUserID) GetDlgItem(IDC_USERMODIFY_PASSWD)->EnableWindow(true); GetDlgItem(IDC_USERMODIFY_SMSNUM)->EnableWindow(true); GetDlgItem(IDC_USERMODIFY_SMSUSED)->EnableWindow(true); GetDlgItem(IDC_USERMODIFY_MMSUSED)->EnableWindow(true); } else { GetDlgItem(IDC_USERMODIFY_LOGINNAME)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_PASSWD)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_SMSNUM)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_SMSUSED)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_MMSUSED)->EnableWindow(false); } } void DLG_User_Modify::OnUsermodifySmsnumAuto() { long lUserNumLen = m_pFGAddress->m_pMainFrame->m_Ans_Login.lUserNumLen; //取用户可分配号码长度 TCHAR szSelect[128]={0}; if ( !m_bAdd ) _stprintf( szSelect , _T("select SmsNum from users where userid<>%d group by SmsNum order by SmsNum"),m_Address.lUserID ); else _tcscpy( szSelect , _T("select SmsNum from users group by SmsNum order by SmsNum") ); BOOL b = m_AdoRS.Open( szSelect ); long lCount = m_AdoRS.GetRecordCount(); m_AdoRS.MoveFirst(); TCHAR szNum[16]={0}; TCHAR szNumBJ[16]={0}; TCHAR szForamt[32]={0}; _stprintf( szForamt , _T("%%0%dd") , lUserNumLen ); long lBJ = 0; for ( int i = 0 ; i< lCount&&!m_AdoRS.IsEOF() ;i++ ) { memset( szNum , 0 , sizeof(szNum) ); m_AdoRS.GetCollect( _T("SmsNum") , szNum ); if ( _tcslen(szNum)<=0) //为空的,不比较 { i--; m_AdoRS.MoveNext(); continue; } //将两个特服号改成相同长度 _stprintf( szNumBJ , szForamt, lBJ ); long lMinLen=(long)_tcslen(szNum); if ( (long)_tcslen(szNumBJ) lAllNum-1 ) { MessageBox( _T("对不起,特服号分配已满,不能再分配!") , _T("错误") , MB_ICONWARNING ); return ; } TCHAR szBuf[32]; _stprintf( szBuf , _T("%%0%dd") , lUserNumLen ); _stprintf( szNum,szBuf , lSmsNum); GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetWindowText(szNum); } void DLG_User_Modify::OnUsermodifyPurviewgj() { CRect rectwnd; this->GetWindowRect( &rectwnd ); CRect rectS1; m_S_S1.GetWindowRect( &rectS1 ); // CRect rectS2; // m_S_S2.GetWindowRect( &rectS2 ); if ( m_bGJ ) { rectwnd.right = rectS1.right+=10; this->MoveWindow( rectwnd ); this->CenterWindow(); GetDlgItem(IDC_USERMODIFY_PURVIEWGJ)->SetWindowText(_T("高级 <<") ); // m_wndSetup.SetWindowText( _T("设置 <<") ); } else { rectwnd.right = rectS1.left; this->MoveWindow( rectwnd ); this->CenterWindow(); GetDlgItem(IDC_USERMODIFY_PURVIEWGJ)->SetWindowText(_T("高级 >>") ); // m_wndSetup.SetWindowText( _T("设置 >>") ); } m_bGJ = !m_bGJ; } void DLG_User_Modify::OnSelchangeUsermodifyPurviewtype() { UpdateData( true ); if ( m_lPurviewType < (long)m_ulMainPurviewType ) { MessageBox( _T("你不能分配比你权限更大的用户!") , _T("错误") , MB_ICONWARNING ); m_lPurviewType = this->m_ulOldPurviewType; UpdateData(false); return ; } m_ulOldPurviewType = m_lPurviewType; //先清空所有权限 m_bGAddress_UserManager = false; m_bGAddress_UserModify = false; m_bGAddress_Add = false; m_bGAddress_Del = false; m_bGAddress_Modify = false; m_bGAddress_See = false; m_bLogin = false; m_bRecvG = false; m_bRecvP = false; m_bSeeBill = false; m_bSeeList = false; m_bPL = false; m_bPL_Verify = false; m_bPL_Audit = false; m_bSendG = false; m_bSendP = false; m_bPAddress = false; m_bSmsEmail = false; m_bCalendar = false; m_bSP = false; if ( m_lPurviewType == PURVIEWTYPE_ADDRESS ) //纯通讯录 { m_strNum = _T("") ; //无需特服号 m_strLoginName=_T(""); //无需登录名 } if ( m_lPurviewType == PURVIEWTYPE_INPUT ) //资料录入员 { //如果自己没有的权限,也不能分配给别人 if ( m_ulMainPurview & PURVIEW_LOGIN ) m_bLogin = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE ) m_bGAddress_See = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_MODIFY ) m_bGAddress_Modify = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_ADD ) m_bGAddress_Add = true; } if ( m_lPurviewType == PURVIEWTYPE_USERS ) //一般员工 { //如果自己没有的权限,也不能分配给别人 if ( m_ulMainPurview & PURVIEW_LOGIN ) m_bLogin = true; if ( m_ulMainPurview & PURVIEW_SENDG ) m_bSendG = true; if ( m_ulMainPurview & PURVIEW_RECVP ) m_bRecvP = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE ) m_bGAddress_See = true; if ( m_ulMainPurview & PURVIEW_SMSEMAIL ) m_bSmsEmail = true; if ( m_ulMainPurview & PURVIEW_CALENDAR ) m_bCalendar = true; if ( m_ulMainPurview & PURVIEW_SMSSP ) m_bSP = true; if ( m_ulMainPurview & PURVIEW_HIDENUM ) m_bHideNum = true; } if ( m_lPurviewType == PURVIEWTYPE_KF ) //客户服务员 { //如果自己没有的权限,也不能分配给别人 if ( m_ulMainPurview & PURVIEW_LOGIN ) m_bLogin = true; if ( m_ulMainPurview & PURVIEW_SENDG ) m_bSendG = true; if ( m_ulMainPurview & PURVIEW_SENDP ) m_bSendP = true; // if ( m_ulMainPurview & PURVIEW_RECVG ) //不给接收公用信息的权限 // m_bRecvG = true; if ( m_ulMainPurview & PURVIEW_RECVP ) m_bRecvP = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE ) m_bGAddress_See = true; if ( m_ulMainPurview & PURVIEW_PADDRESS ) m_bPAddress = true; if ( m_ulMainPurview & PURVIEW_SMSEMAIL ) m_bSmsEmail = true; if ( m_ulMainPurview & PURVIEW_CALENDAR ) m_bCalendar = true; if ( m_ulMainPurview & PURVIEW_SMSSP ) m_bSP = true; } if ( m_lPurviewType == PURVIEWTYPE_ADMIN ) //管理员 { //如果自己没有的权限,也不能分配给别人 if ( m_ulMainPurview & PURVIEW_LOGIN ) m_bLogin = true; if ( m_ulMainPurview & PURVIEW_SENDG ) m_bSendG = true; if ( m_ulMainPurview & PURVIEW_SENDP ) m_bSendP = true; if ( m_ulMainPurview & PURVIEW_RECVG ) m_bRecvG = true; if ( m_ulMainPurview & PURVIEW_RECVP ) m_bRecvP = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE ) m_bGAddress_See = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_MODIFY ) m_bGAddress_Modify = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_ADD ) m_bGAddress_Add = true; if ( m_ulMainPurview & PURVIEW_GADDRESS_DEL ) m_bGAddress_Del = true; if ( m_ulMainPurview & PURVIEW_USER_MANAGER ) m_bGAddress_UserManager = true; if ( m_ulMainPurview & PURVIEW_USER_MODIFY ) m_bGAddress_UserModify = true; if ( m_ulMainPurview & PURVIEW_SEEBILL ) m_bSeeBill = true; if ( m_ulMainPurview & PURVIEW_SEELIST ) m_bSeeList = true; if ( m_ulMainPurview & PURVIEW_PL ) m_bPL = true; if ( m_ulMainPurview & PURVIEW_PL_AUDIT ) m_bPL_Audit = true; if ( m_ulMainPurview & PURVIEW_PL_VERIFY ) m_bPL_Verify = true; if ( m_ulMainPurview & PURVIEW_PADDRESS ) m_bPAddress = true; if ( m_ulMainPurview & PURVIEW_SMSEMAIL ) m_bSmsEmail = true; if ( m_ulMainPurview & PURVIEW_CALENDAR ) m_bCalendar = true; if ( m_ulMainPurview & PURVIEW_SMSSP ) m_bSP = true; } UpdateData(false); OnUsermodifyBlogin(); //是否显示登录信息 return; } void DLG_User_Modify::DisableAllPurview() { GetDlgItem(IDC_USERMODIFY_BLOGIN)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BSENDGADDRESS)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BSENDPADDRESS)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BRECVG)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BRECVP)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BSEEBILL)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BSEELIST)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BPL)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BPL_VERIFY)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BPL_AUDIT)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_SEE)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_MODIFY)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_MANAGER)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_ADD)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BGADDRESS_DEL)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_BPADDRESS)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_EMAIL)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_CALENDAR)->EnableWindow(false); GetDlgItem(IDC_USERMODIFY_SMSSP)->EnableWindow(false); } void DLG_User_Modify::OnUsermodifyGroupSel() { DLG_UserSelect dlg(this); dlg.SetParam( this->m_pFGAddress->m_pMainFrame,_T("gaddress"),_T("所有用户组"),false ); if ( dlg.DoModal()==IDOK ) { UpdateData(true); m_Address.lAccessGroupID = dlg.GetParam(m_strGroup); UpdateData(false); } } void DLG_User_Modify::OnBnClickedOk() { UpdateData(true); BOOL bReMakePasswd = false; if (m_strName.GetLength() <= 0 ) { GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus(); MessageBox( _T("用户姓名不能为空,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } //查重,姓名不能重复 if ( CString(m_Address.szName) != m_strName) { TCHAR szSelect[128]={0}; _stprintf( szSelect , _T("select * from users where Name='%s' and UserType='1' ") , m_strName); BOOL b = m_AdoRS.Open( szSelect ); if ( b && m_AdoRS.GetRecordCount() ) { GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus(); MessageBox( _T("此姓名已使用,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } } if ( m_bLogin ) //如果有登录权限,则需要检测登录名的情况 { if (m_strLoginName.GetLength() <= 0 ) { GetDlgItem(IDC_USERMODIFY_LOGINNAME)->SetFocus(); MessageBox( _T("登录名不能为空,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } if ( CString(m_Address.szLoginName) != m_strLoginName) { TCHAR szSelect[128]={0}; _stprintf( szSelect , _T("select * from users where LoginName='%s' ") , m_strLoginName); BOOL b = m_AdoRS.Open( szSelect ); if ( b && m_AdoRS.GetRecordCount() ) { GetDlgItem(IDC_USERMODIFY_LOGINNAME)->SetFocus(); MessageBox( _T("此登录名已使用,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } bReMakePasswd = true; //登录不同,需要修改密码 } //特服号不能为空 //if ( m_bRecvP || m_bSendG || m_bSendP ) if ( m_bRecvP ) { if ( m_strNum.GetLength()<=0 ) { GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus(); MessageBox( _T("因为此用户有发送或接收短信的权限,你必须为其分配一个特服号!") , _T("错误") , MB_ICONWARNING ); return ; } } } long lUserNumLen = m_pFGAddress->m_pMainFrame->m_Ans_Login.lUserNumLen; //取用户可分配号码长度 /* if ( m_strNum.GetLength() > 0 && m_strNum.GetLength() != lUserNumLen ) //查重,短信特服号 { GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus(); MessageBox( _T("特服号位数不对,请确认!") , _T("错误") , MB_ICONWARNING ); return ; } */ if ( m_strNum.GetLength() > 0 && m_strNum!=CString(m_Address.szSMSNum)) //查重,短信特服号 { TCHAR szSelect[128]={0}; //_stprintf( szSelect , _T("select * from users where SMSNum='%s' ") , m_strNum ); if ( !m_bAdd ) _stprintf( szSelect , _T("select * from users where left(SMSNum,%d)='%s' and userid<>%d") , m_strNum.GetLength(),m_strNum,m_Address.lUserID ); else _stprintf( szSelect , _T("select * from users where left(SMSNum,%d)='%s'") , m_strNum.GetLength(),m_strNum ); BOOL b = m_AdoRS.Open( szSelect ); if ( b && m_AdoRS.GetRecordCount() ) { GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus(); MessageBox( _T("此特服号段已使用,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } long lNumLen=m_strNum.GetLength(); for ( int i=1 ; i%d") , m_strNum.Left(i),m_Address.lUserID ); else _stprintf( szSelect , _T("select * from users where SMSNum='%s' ") , m_strNum.Left(i) ); BOOL b = m_AdoRS.Open( szSelect ); if ( b && m_AdoRS.GetRecordCount() ) { GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus(); MessageBox( _T("此特服号段已使用,请重新输入!") , _T("错误") , MB_ICONWARNING ); return ; } } } _tcscpy( m_Address.szLoginName , m_strLoginName ); _tcscpy( m_Address.szSMSNum, m_strNum); if ( m_strSMSUsed == _T("无限制") || _ttol( m_strSMSUsed ) < 0) { m_Address.lSMSUsed = -100; } else { m_Address.lSMSUsed = _ttol(m_strSMSUsed); } if ( m_strMmsUsed == _T("无限制") || _ttol( m_strMmsUsed ) < 0) { m_Address.lMmsUsed = -100; } else { m_Address.lMmsUsed = _ttol(m_strMmsUsed); } _tcscpy( m_Address.szName , m_strName ); _tcscpy( m_Address.szNickName , m_strNickName ); if ( m_lSex == 0 ) _tcscpy( m_Address.szSex , _T("") ); else if ( m_lSex == 1 ) _tcscpy( m_Address.szSex , _T("男") ); else _tcscpy( m_Address.szSex , _T("女") ); _tcscpy( m_Address.szJob , m_strJob ); _tcscpy( m_Address.szTel , m_strTel ); _tcscpy( m_Address.szFax , m_strFax ); _tcscpy( m_Address.szMobile , m_strMobile ); _tcscpy( m_Address.szEmail , m_strEmail ); _tcscpy( m_Address.szQQ , m_strQQ ); _tcscpy( m_Address.szBZ , m_strBZ ); if ( m_tBirthday.GetStatus() == COleDateTime::valid ) m_tBirthday.GetAsSystemTime( m_Address.tBirthday ); else memset(&m_Address.tBirthday,0,sizeof(m_Address.tBirthday)); //权限类型 m_Address.ulPurviewType = m_lPurviewType; if ( m_bModifyPurview ) { m_Address.ulPurview = 0; if ( m_bLogin ) m_Address.ulPurview |= PURVIEW_LOGIN ; if ( m_bSendG ) m_Address.ulPurview |= PURVIEW_SENDG ; if ( m_bSendP ) m_Address.ulPurview |= PURVIEW_SENDP ; if ( m_bRecvG ) m_Address.ulPurview |= PURVIEW_RECVG ; if ( m_bRecvP ) m_Address.ulPurview |= PURVIEW_RECVP ; if ( m_bSeeBill ) m_Address.ulPurview |= PURVIEW_SEEBILL ; if ( m_bSeeList ) m_Address.ulPurview |= PURVIEW_SEELIST ; if ( m_bPL ) m_Address.ulPurview |= PURVIEW_PL ; if ( m_bPL_Audit ) m_Address.ulPurview |= PURVIEW_PL_AUDIT ; if ( m_bPL_Verify ) m_Address.ulPurview |= PURVIEW_PL_VERIFY ; if ( this->m_bGAddress_See ) m_Address.ulPurview |= PURVIEW_GADDRESS_SEE; if ( this->m_bGAddress_Modify ) m_Address.ulPurview |= PURVIEW_GADDRESS_MODIFY; if ( this->m_bGAddress_UserManager ) m_Address.ulPurview |= PURVIEW_USER_MANAGER; if ( this->m_bGAddress_UserModify ) m_Address.ulPurview |= PURVIEW_USER_MODIFY; if ( this->m_bGAddress_Add ) m_Address.ulPurview |= PURVIEW_GADDRESS_ADD; if ( this->m_bGAddress_Del ) m_Address.ulPurview |= PURVIEW_GADDRESS_DEL; if ( this->m_bPAddress ) m_Address.ulPurview |= PURVIEW_PADDRESS; if ( this->m_bSmsEmail ) m_Address.ulPurview |= PURVIEW_SMSEMAIL; if ( this->m_bCalendar ) m_Address.ulPurview |= PURVIEW_CALENDAR; if ( this->m_bSP ) m_Address.ulPurview |= PURVIEW_SMSSP; if ( this->m_bHideNum ) m_Address.ulPurview |= PURVIEW_HIDENUM; } //取得新密码 if ( m_bResetPasswd && m_bSetPasswd ) //有重置密码的权限并且已重置过密码 { bReMakePasswd = true; m_B_Passwd.GetWindowText(m_szPasswd , sizeof(m_szPasswd)); } if ( bReMakePasswd ) { CDes des; #ifdef UNICODE char szPasswd[64]={0}; char szPasswd2[64]={0}; char szUser[64]={0}; strcpy( szPasswd , CW2A(m_szPasswd) ); strcpy( szUser , CW2A(m_Address.szLoginName ) ); long lLen=sizeof(szPasswd2); des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 ); _tcscpy(m_Address.szPasswd,CA2W(szPasswd2)); #else long lOut = sizeof(m_Address.szPasswd); des.Encrypt( m_szPasswd , _tcslen(m_szPasswd) , m_Address.szPasswd , lOut,m_Address.szLoginName,8); #endif } if ( m_bAdd ) //添加 { m_pFGAddress->AddUser( m_Address ); m_strName= _T(""); m_strNickName= _T(""); m_strLoginName = _T(""); m_tBirthday.SetStatus( COleDateTime::null ); m_strMobile = _T(""); m_strEmail = _T(""); m_strQQ = _T(""); UpdateData(false); OnUsermodifyPasswd(); //因为是添加管理员,所以先要设置密码 if (m_Address.ulPurview & PURVIEW_RECVP) { _tcscpy( m_Address.szLoginName , _T("") ); _tcscpy( m_Address.szSMSNum , _T("") ); //自动加1,取特服号 { long lSmsNum = _ttoi(m_strNum); //取得New Num long lAllNum = 1; lSmsNum ++; for ( int i=0;i lAllNum-1 ) { MessageBox( _T("对不起,特服号分配已满,不能再分配!") , _T("错误") , MB_ICONWARNING ); return ; } TCHAR szBuf[32]; TCHAR szNum[32]; _stprintf( szBuf , _T("%%0%dd") , lUserNumLen ); _stprintf( szNum,szBuf , lSmsNum); GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetWindowText(szNum); } } GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus(); return ; } CDialog::OnOK(); } void DLG_User_Modify::OnBnClickedCancel() { if (m_bSetPasswd) { int iRet = MessageBox(_T("你已重置密码,取消后新密码不会生效!\r\n是否继续取消?"),_T("提示"),MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2); if (iRet != IDYES) return; } CDialog::OnCancel(); } BOOL DLG_User_Modify::PreTranslateMessage(MSG* pMsg) { m_tooltip.RelayEvent(pMsg); return CDialog::PreTranslateMessage(pMsg); } void DLG_User_Modify::OnTimer(UINT_PTR nIDEvent) { if (nIDEvent == 1) { KillTimer(nIDEvent); m_bAutoSetPasswd = true; this->OnUsermodifyPasswd(); //因为是添加管理员,所以先要设置密码 m_bAutoSetPasswd = false; if (m_Address.ulPurview & PURVIEW_RECVP) OnUsermodifySmsnumAuto(); //取得默认特服号 GetDlgItem(IDOK)->SetWindowText(_T("添 加")); } CDialog::OnTimer(nIDEvent); }