// ServerToolUserManagementDlg.cpp : ±¸Çö ÆÄÀÏ // #include "stdafx.h" #include "ManageSetup.h" #include "ServerToolUserManagementDlg.h" #include "UserRegEditDlg.h" #include const TCHAR* GetLVString( int nLVIndex ) { switch( nLVIndex ) { case CToolUserManager::MASTER: return _T("MASTER"); case CToolUserManager::GENERAL: return _T("GENERAL"); case CToolUserManager::MONITORING: return _T("MONITORING"); } return _T("UNKNOWN"); } // CServerToolUserManagementDlg ´ëÈ­ »óÀÚ CServerToolUserManagementDlg::CServerToolUserManagementDlg(CWnd* pParent /*=NULL*/) : CDialog(CServerToolUserManagementDlg::IDD, pParent) { } void CServerToolUserManagementDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_USERINFO_LIST, m_ctrlUserInfoList); } BEGIN_MESSAGE_MAP(CServerToolUserManagementDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_USER_REG, OnBnClickedUserReg) ON_BN_CLICKED(IDC_USER_EDIT, OnBnClickedUserEdit) ON_BN_CLICKED(IDC_USER_DEL, OnBnClickedUserDel) END_MESSAGE_MAP() // CServerToolUserManagementDlg ¸Þ½ÃÁö 󸮱â BOOL CServerToolUserManagementDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlUserInfoList.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB ); //m_ctrlUserInfoList.SetBkColor ( COLORREF RGB( 255, 190, 125) ); //m_ctrlUserInfoList.SetTextBkColor ( COLORREF RGB( 255, 190, 125) ); m_ctrlUserInfoList.InsertColumn ( 0, _T("ID"), LVCFMT_LEFT, 100 ); m_ctrlUserInfoList.InsertColumn ( 1, _T("NAME"), LVCFMT_LEFT, 80 ); m_ctrlUserInfoList.InsertColumn ( 2, _T("IP"), LVCFMT_LEFT, 110 ); m_ctrlUserInfoList.InsertColumn ( 3, _T("ADMIN LV"), LVCFMT_LEFT, 100 ); UserListSet(); // ¿î¿µÀÚ Á¤º¸ DB¸¦ Àо ¸®½ºÆ®¿¡ Ç¥½Ã return true; } struct SORT_BY_ID { bool operator () (const ServerManage::UserInfo& lhs, const ServerManage::UserInfo& rhs) { return std::lexicographical_compare(lhs.szID, lhs.szID + strlen(lhs.szID), rhs.szID, rhs.szID + strlen(rhs.szID)); } }; bool CServerToolUserManagementDlg::UserListSet() { // ¸®½ºÆ® ÄÁÆ®·Ñ Ŭ¸®¾î m_ctrlUserInfoList.DeleteAllItems(); CToolUserManager::UserList userList; // DB¸¦ Àо ¸®½ºÆ® ÄÁÆ®·Ñ¿¡ ¼ÂÆÃ CToolUserManager::GetInstance().GetUserInfo(userList); userList.sort(SORT_BY_ID()); CToolUserManager::UserList::iterator pos = userList.begin(); CToolUserManager::UserList::iterator end = userList.end(); in_addr userIP; int nCount = 0; for(;pos != end; ++pos, ++nCount) { ServerManage::UserInfo& userInfo = *pos; m_ctrlUserInfoList.InsertItem(nCount, userInfo.szID ); m_ctrlUserInfoList.SetItemText(nCount, 1, userInfo.szFullName ); userIP.S_un.S_addr = userInfo.dwIP; m_ctrlUserInfoList.SetItemText(nCount, 2, inet_ntoa(userIP)); m_ctrlUserInfoList.SetItemText(nCount, 3, GetLVString(userInfo.usAdminLevel)); } return true; } void CServerToolUserManagementDlg::OnBnClickedUserReg() { CUserRegEditDlg RegDlg(0); RegDlg.DoModal(); UserListSet(); } void CServerToolUserManagementDlg::OnBnClickedUserEdit() { int nSelectedIndex = m_ctrlUserInfoList.GetNextItem(-1, LVIS_SELECTED); if(-1 != nSelectedIndex) { char szID[ServerManage::UserInfo::ID_LEN]; m_ctrlUserInfoList.GetItemText(nSelectedIndex, 0, szID, ServerManage::UserInfo::ID_LEN); ServerManage::UserInfo userInfo; if(CToolUserManager::GetInstance().GetUserInfo(szID, userInfo)) { CUserRegEditDlg EditDlg(&userInfo); EditDlg.DoModal(); UserListSet(); } } } void CServerToolUserManagementDlg::OnBnClickedUserDel() { int nSelectedIndex = m_ctrlUserInfoList.GetNextItem( -1, LVIS_SELECTED ); if( -1 != nSelectedIndex ) { // °èÁ¤ »èÁ¦½Ã¿¡´Â ID¸¸ ä¿ö¼­ º¸³¿ ServerManage::UserInfo stDelUserInfo; m_ctrlUserInfoList.GetItemText(nSelectedIndex, 0, stDelUserInfo.szID, ServerManage::UserInfo::ID_LEN); CToolUserManager::GetInstance().DelUser(stDelUserInfo.szID); UserListSet(); } }