mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-26 09:32:34 +00:00
Add Database::DbLoginServerAdmin GetLoginServerAdmin [skip ci]
This commit is contained in:
parent
739f54bbfb
commit
86943ce6be
@ -449,7 +449,8 @@ bool Database::CreateWorldRegistration(
|
|||||||
std::string server_long_name,
|
std::string server_long_name,
|
||||||
std::string server_short_name,
|
std::string server_short_name,
|
||||||
std::string server_remote_ip,
|
std::string server_remote_ip,
|
||||||
unsigned int &id
|
unsigned int &id,
|
||||||
|
unsigned int &server_admin_id
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
auto results = QueryDatabase("SELECT IFNULL(max(id), 0) + 1 FROM login_world_servers");
|
auto results = QueryDatabase("SELECT IFNULL(max(id), 0) + 1 FROM login_world_servers");
|
||||||
@ -462,11 +463,12 @@ bool Database::CreateWorldRegistration(
|
|||||||
id = std::stoi(row[0]);
|
id = std::stoi(row[0]);
|
||||||
auto insert_query = fmt::format(
|
auto insert_query = fmt::format(
|
||||||
"INSERT INTO login_world_servers SET id = {0}, long_name = '{1}', short_name = '{2}', last_ip_address = '{3}', \n"
|
"INSERT INTO login_world_servers SET id = {0}, long_name = '{1}', short_name = '{2}', last_ip_address = '{3}', \n"
|
||||||
"login_server_list_type_id = 3, login_server_admin_id = 0, is_server_trusted = 0, tag_description = ''",
|
"login_server_list_type_id = 3, login_server_admin_id = {4}, is_server_trusted = 0, tag_description = ''",
|
||||||
id,
|
id,
|
||||||
server_long_name,
|
server_long_name,
|
||||||
server_short_name,
|
server_short_name,
|
||||||
server_remote_ip
|
server_remote_ip,
|
||||||
|
server_admin_id
|
||||||
);
|
);
|
||||||
|
|
||||||
auto insert_results = QueryDatabase(insert_query);
|
auto insert_results = QueryDatabase(insert_query);
|
||||||
@ -655,7 +657,7 @@ bool Database::DoesLoginserverWorldAdminAccountExist(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
auto query = fmt::format(
|
auto query = fmt::format(
|
||||||
"SELECT account_name FROM login_server_admins WHERE account_name = '{0}'",
|
"SELECT account_name FROM login_server_admins WHERE account_name = '{0}' LIMIT 1",
|
||||||
EscapeString(account_name)
|
EscapeString(account_name)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -663,3 +665,34 @@ bool Database::DoesLoginserverWorldAdminAccountExist(
|
|||||||
|
|
||||||
return (results.RowCount() == 1);
|
return (results.RowCount() == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param account_name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Database::DbLoginServerAdmin Database::GetLoginServerAdmin(const std::string &account_name)
|
||||||
|
{
|
||||||
|
auto query = fmt::format(
|
||||||
|
"SELECT id, account_name, account_password, first_name, last_name, email, registration_date, registration_ip_address"
|
||||||
|
" FROM login_server_admins WHERE account_name = '{0}' LIMIT 1",
|
||||||
|
EscapeString(account_name)
|
||||||
|
);
|
||||||
|
|
||||||
|
auto results = QueryDatabase(query);
|
||||||
|
|
||||||
|
Database::DbLoginServerAdmin login_server_admin{};
|
||||||
|
if (results.RowCount() == 1) {
|
||||||
|
auto row = results.begin();
|
||||||
|
login_server_admin.loaded = true;
|
||||||
|
login_server_admin.id = std::stoi(row[0]);
|
||||||
|
login_server_admin.account_name = row[1];
|
||||||
|
login_server_admin.account_password = row[2];
|
||||||
|
login_server_admin.first_name = row[3];
|
||||||
|
login_server_admin.last_name = row[4];
|
||||||
|
login_server_admin.email = row[5];
|
||||||
|
login_server_admin.registration_date = row[7];
|
||||||
|
login_server_admin.registration_ip_address = row[8];
|
||||||
|
}
|
||||||
|
|
||||||
|
return login_server_admin;
|
||||||
|
}
|
||||||
|
|||||||
@ -195,7 +195,8 @@ public:
|
|||||||
std::string server_long_name,
|
std::string server_long_name,
|
||||||
std::string server_short_name,
|
std::string server_short_name,
|
||||||
std::string server_remote_ip,
|
std::string server_remote_ip,
|
||||||
unsigned int &id
|
unsigned int &id,
|
||||||
|
unsigned int &server_admin_id
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -235,6 +236,20 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool DoesLoginserverWorldAdminAccountExist(const std::string &account_name);
|
bool DoesLoginserverWorldAdminAccountExist(const std::string &account_name);
|
||||||
|
|
||||||
|
struct DbLoginServerAdmin {
|
||||||
|
bool loaded = false;
|
||||||
|
uint32 id;
|
||||||
|
std::string account_name;
|
||||||
|
std::string account_password;
|
||||||
|
std::string first_name;
|
||||||
|
std::string last_name;
|
||||||
|
std::string email;
|
||||||
|
std::string registration_date;
|
||||||
|
std::string registration_ip_address;
|
||||||
|
};
|
||||||
|
|
||||||
|
Database::DbLoginServerAdmin GetLoginServerAdmin(const std::string &account_name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string user, pass, host, port, name;
|
std::string user, pass, host, port, name;
|
||||||
MYSQL *database{};
|
MYSQL *database{};
|
||||||
|
|||||||
@ -192,7 +192,7 @@ namespace LoginserverCommandHandler {
|
|||||||
cmd("--password").str().empty() ||
|
cmd("--password").str().empty() ||
|
||||||
cmd("--email").str().empty()) {
|
cmd("--email").str().empty()) {
|
||||||
|
|
||||||
LogInfo("Command Example: create-loginserver-account --username=user --password=password");
|
LogInfo("Command Example: create-loginserver-world-admin-account --username=* --password=* --email=*");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -875,6 +875,23 @@ bool WorldServer::HandleNewLoginserverInfoUnregisteredAllowed(
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Database::DbLoginServerAdmin login_server_admin =
|
||||||
|
server.db->GetLoginServerAdmin(GetAccountName());
|
||||||
|
|
||||||
|
uint32 server_admin_id = 0;
|
||||||
|
|
||||||
|
if (login_server_admin.loaded) {
|
||||||
|
auto mode = server.options.GetEncryptionMode();
|
||||||
|
if (eqcrypt_verify_hash(
|
||||||
|
GetAccountName(),
|
||||||
|
GetAccountPassword(),
|
||||||
|
login_server_admin.account_password,
|
||||||
|
mode
|
||||||
|
)) {
|
||||||
|
server_admin_id = login_server_admin.id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto create a registration
|
* Auto create a registration
|
||||||
*/
|
*/
|
||||||
@ -882,7 +899,8 @@ bool WorldServer::HandleNewLoginserverInfoUnregisteredAllowed(
|
|||||||
GetServerLongName(),
|
GetServerLongName(),
|
||||||
GetServerShortName(),
|
GetServerShortName(),
|
||||||
GetRemoteIp(),
|
GetRemoteIp(),
|
||||||
server_id
|
server_id,
|
||||||
|
server_admin_id
|
||||||
)) {
|
)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user