// PageUserMgr.cpp : implementation file // #include "stdafx.h" #include "mgrnve.h" #include "ConnectionManager.h" #include "PageUserMgr.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPageUserMgr dialog CPageUserMgr::CPageUserMgr(CWnd* pParent, CMgrNVE* pMgrCM, CConnectionManager *pConnMgr) : CParamDlg(CPageUserMgr::IDD, pParent, pMgrCM, pConnMgr) { //{{AFX_DATA_INIT(CPageUserMgr) m_strID = _T(""); m_strPW = _T(""); //}}AFX_DATA_INIT m_pNet5Api = NULL; m_pMsgMgr = NULL; } void CPageUserMgr::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPageUserMgr) DDX_Control(pDX, IDC_LIST_CON_USER, m_lstConUser); DDX_Control(pDX, IDC_LIST_ALL_USER, m_lstAllUser); DDX_Control(pDX, IDC_CB_LEVEL, m_cbLevel); DDX_Control(pDX, IDC_CB_CMD, m_cbCmd); DDX_Text(pDX, IDC_EDIT_ID, m_strID); DDX_Text(pDX, IDC_EDIT_PW, m_strPW); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPageUserMgr, CDialog) //{{AFX_MSG_MAP(CPageUserMgr) ON_BN_CLICKED(IDC_BTN_SEND, OnBtnSend) ON_CBN_SELCHANGE(IDC_CB_CMD, OnSelchangeCbCmd) ON_LBN_SELCHANGE(IDC_LIST_ALL_USER, OnSelchangeListAllUser) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPageUserMgr message handlers BOOL CPageUserMgr::SaveSetting() { return TRUE; } BOOL CPageUserMgr::ResetSetting() { return TRUE; } BOOL CPageUserMgr::UpdateSetting() { return TRUE; } BOOL CPageUserMgr::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_pNet5Api = m_pConnection->GetNet5Api(); m_pMsgMgr = m_pMgrNVE->GetMsgManager(); m_cbCmd.AddString("Add"); m_cbCmd.AddString("Delete"); m_cbCmd.AddString("Set Info"); m_cbCmd.SetCurSel(0); m_cbLevel.AddString("Admin"); m_cbLevel.AddString("User"); m_cbLevel.AddString("Guest"); m_cbLevel.SetCurSel(0); UpdateUserList(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CPageUserMgr::OnBtnSend() { // TODO: Add your control notification handler code here UpdateData(TRUE); ULONG uLevel = 0; switch(m_cbCmd.GetCurSel()) { case 0: uLevel = m_cbLevel.GetCurSel()+1; CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_ADD_USER_ID, (ULONG*)(LPSTR)(LPCSTR)m_strID, (ULONG*)(LPSTR)(LPCSTR)m_strPW, &uLevel, 0), "NET5_NC_ADD_USER_ID failed"); UpdateUserList(); break; case 1: CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_DEL_USER_ID, (ULONG*)(LPSTR)(LPCSTR)m_strID, 0, 0, 0), "NET5_NC_DEL_USER_ID failed"); UpdateUserList(); break; case 2: uLevel = m_cbLevel.GetCurSel()+1; CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_CHANGE_PW, (ULONG*)(LPSTR)(LPCSTR)m_strID, (ULONG*)(LPSTR)(LPCSTR)m_strPW, 0, 0), "NET5_NC_GET_USER_PW failed"); if (m_strID != "root") { CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_CHANGE_USER_ID_DATA, (ULONG*)(LPSTR)(LPCSTR)m_strID, &uLevel, 0, 0), "NET5_NC_GET_USER_PW failed"); } break; } } void CPageUserMgr::OnSelchangeCbCmd() { // TODO: Add your control notification handler code here switch(m_cbCmd.GetCurSel()) { case 0: ((CEdit*)(GetDlgItem(IDC_EDIT_ID)))->EnableWindow(TRUE); ((CEdit*)(GetDlgItem(IDC_EDIT_PW)))->EnableWindow(TRUE); ((CComboBox*)(GetDlgItem(IDC_CB_LEVEL)))->EnableWindow(TRUE); break; case 1: ((CEdit*)(GetDlgItem(IDC_EDIT_ID)))->EnableWindow(TRUE); ((CEdit*)(GetDlgItem(IDC_EDIT_PW)))->EnableWindow(FALSE); ((CComboBox*)(GetDlgItem(IDC_CB_LEVEL)))->EnableWindow(FALSE); break; case 2: ((CEdit*)(GetDlgItem(IDC_EDIT_ID)))->EnableWindow(TRUE); ((CEdit*)(GetDlgItem(IDC_EDIT_PW)))->EnableWindow(TRUE); ((CComboBox*)(GetDlgItem(IDC_CB_LEVEL)))->EnableWindow(TRUE); break; } } void CPageUserMgr::UpdateUserList() { ULONG uAllNum, uConNum; char **ppAllList, **ppConList; m_lstAllUser.ResetContent(); m_lstConUser.ResetContent(); CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_GET_ALL_USER_NUM, &uAllNum, 0, 0, 0), "NET5_NC_GET_ALL_USER_NUM failed"); CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_GET_CONNECTION_NUM, &uConNum, 0, 0, 0), "NET5_NC_GET_CONNECTION_NUM failed"); ppAllList = new char*[uAllNum]; ULONG i; for (i=0; iNet5Command(NET5_NC_GET_ALL_USER_LIST, (ULONG*)ppAllList, 0, 0, 0)) { m_pMsgMgr->PushErrorCodeF("NET5_NC_GET_ALL_USER_LIST failed"); m_pMsgMgr->Show(TRUE); for (i=0; iNet5Command(NET5_NC_GET_CONNECTION_LIST, (ULONG*)ppConList, 0, 0, 0)) { //m_pMsgMgr->PushErrorCodeF("NET5_NC_GET_CURRENT_USER_LIST failed"); //m_pMsgMgr->Show(TRUE); for (i=0; iNet5Command(NET5_NC_GET_CONNECTION_NUM, &uNum, 0, 0, 0), "NET5_NC_GET_CONNECTION_NUM failed"); #endif for (i=0; iNet5Command(NET5_NC_GET_USER_PW, (ULONG*)(LPSTR)(LPCSTR)szID, (ULONG*)(LPSTR)(LPCSTR)szPW, 0, 0), "NET5_NC_GET_USER_PW failed"); CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_GET_ID_DATA, (ULONG*)(LPSTR)(LPCSTR)szID, &uLevel, 0, 0), "NET5_NC_GET_ID_DATA failed"); m_strPW = szPW; m_cbLevel.SetCurSel(uLevel-1); UpdateData(FALSE); }