Files
Client/Server/ManageTool/ManageSetup/dialog/UserRegEditDlg.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

153 lines
3.7 KiB
C++

// AdminRegEditDlg.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "ManageSetup.h"
#include "UserRegEditDlg.h"
#include "ServerToolUserManagementDlg.h"
#include <UserManage/ToolUserManageTable.h>
#include ".\userregeditdlg.h"
// AdminRegEditDlg 대화 상자입니다.
enum UserRegEditConst
{
REGISTER,
EDIT
};
IMPLEMENT_DYNAMIC(CUserRegEditDlg, CDialog)
CUserRegEditDlg::CUserRegEditDlg(ServerManage::UserInfo* lpUserInfo,
CWnd* pParent /*=NULL*/)
: CDialog(CUserRegEditDlg::IDD, pParent)
, m_szTitleName( _T("") )
, m_szGroupName( _T("") )
, m_strTempUserID(_T(""))
, m_strUserName(_T(""))
, m_strUserPass(_T(""))
, m_strUserIP(_T(""))
, m_usUserLevel(CToolUserManager::MONITORING)
, m_usMode(REGISTER)
{
if(0 != lpUserInfo)
{
in_addr addr;
addr.S_un.S_addr = lpUserInfo->dwIP;
m_strTempUserID.SetString(lpUserInfo->szID);
m_strUserName.SetString(lpUserInfo->szFullName);
m_strUserPass.SetString(lpUserInfo->szPassword);
m_strUserIP.SetString(inet_ntoa(addr));
m_usUserLevel = lpUserInfo->usAdminLevel;
m_usMode = EDIT;
}
}
CUserRegEditDlg::~CUserRegEditDlg()
{
}
void CUserRegEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_GROUPNAME_EDIT, m_szGroupName);
DDX_Text(pDX, IDC_USERNAME, m_strUserName);
DDX_Text(pDX, IDC_USERPASS, m_strUserPass);
DDX_Text(pDX, IDC_USERIP, m_strUserIP);
DDX_Control(pDX, IDC_USERLV, m_ctrlUserLV);
DDX_Control(pDX, IDC_USERID, m_strUserID);
}
BEGIN_MESSAGE_MAP(CUserRegEditDlg, CDialog)
ON_BN_CLICKED(IDC_REGEDITOK_BTN, OnBnClickedRegeditokBtn)
ON_BN_CLICKED(IDC_CANCEL, OnBnClickedCancel)
END_MESSAGE_MAP()
// AdminRegEditDlg 메시지 처리기입니다.
BOOL CUserRegEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlUserLV.InsertString( CToolUserManager::MASTER, _T("MASTER") );
m_ctrlUserLV.InsertString( CToolUserManager::GENERAL, _T("GENERAL") );
m_ctrlUserLV.InsertString( CToolUserManager::MONITORING, _T("MONITORING") );
m_ctrlUserLV.SetCurSel(m_usUserLevel);
if(m_strTempUserID.IsEmpty())
{
SetWindowText( _T("Admin Registaration") );
m_szGroupName = _T("New Admin Info");
}
else
{
m_strUserID.SetWindowText(m_strTempUserID);
m_strUserID.SetReadOnly();
SetWindowText( _T("Admin Edit") );
m_szGroupName = _T("Edit Admin Info");
}
UpdateData( false );
return true;
}
void CUserRegEditDlg::OnBnClickedRegeditokBtn()
{
UpdateData( true );
ServerManage::UserInfo stNewUserInfo;
m_strUserID.GetWindowText(m_strTempUserID);
// 수정 또는 등록 할 운영자 정보 수집
_snprintf(stNewUserInfo.szID,
ServerManage::UserInfo::ID_LEN - 1, "%s", m_strTempUserID); // 운영자 ID
stNewUserInfo.szID[ServerManage::UserInfo::ID_LEN - 1] = 0;
_snprintf(stNewUserInfo.szFullName,
ServerManage::UserInfo::NAME_LEN - 1, "%s", m_strUserName ); // 운영자 이름
stNewUserInfo.szFullName[ServerManage::UserInfo::NAME_LEN - 1] = 0;
stNewUserInfo.dwIP = inet_addr(m_strUserIP); // 운영자 IP
stNewUserInfo.usAdminLevel = m_ctrlUserLV.GetCurSel(); // 운영자 레벨
_snprintf(stNewUserInfo.szPassword,
ServerManage::UserInfo::PASS_LEN - 1, "%s", m_strUserPass ); // 운영자 패스워드
stNewUserInfo.szPassword[ServerManage::UserInfo::PASS_LEN - 1] = 0;
if( m_usMode == REGISTER)
{
if(!CToolUserManager::GetInstance().AddUser(stNewUserInfo))
{
AfxMessageBox("Add user error!");
}
}
else if( m_usMode == EDIT )
{
if(!CToolUserManager::GetInstance().ModifyUser(stNewUserInfo))
{
AfxMessageBox("Modify user error!");
}
}
OnOK();
}
void CUserRegEditDlg::OnBnClickedCancel()
{
OnCancel();
}