aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_02_27_35_world_2020_09_22_01_world.sql42
-rw-r--r--src/server/game/Miscellaneous/Language.h34
-rw-r--r--src/server/scripts/Commands/cs_account.cpp39
3 files changed, 78 insertions, 37 deletions
diff --git a/sql/updates/world/master/2022_02_27_35_world_2020_09_22_01_world.sql b/sql/updates/world/master/2022_02_27_35_world_2020_09_22_01_world.sql
new file mode 100644
index 00000000000..1ac06f2b398
--- /dev/null
+++ b/sql/updates/world/master/2022_02_27_35_world_2020_09_22_01_world.sql
@@ -0,0 +1,42 @@
+--
+DELETE FROM `command` WHERE `name` LIKE 'account%';
+
+DELETE FROM `trinity_string` WHERE `entry` BETWEEN 366 AND 382;
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+(366, '### USAGE: .account set addon [<accountname>] <expansion>
+Sets the specified account\'s, or targeted player\'s account\'s expansion level. 0 = WoW, 1 = TBC, 2 = WotLK.'),
+(367, '### USAGE: .account set sec regmail <accountname> <email> <confirm email>
+Replaces the registration email on record for the specified account.'),
+(368, '### USAGE: .account set sec email <accountname> <email> <confirm email>
+Replaces the email on record for the specified account.'),
+(369, '### USAGE: .account set 2fa <accountname> <secret>
+Provide a base32 encoded secret to setup two-factor authentication for the account.
+Specify \'off\' to disable two-factor authentication for the account.'),
+(370, '### USAGE: .account set seclevel [<accountname>] <level> [<realm>]
+Set the security level for the specified account, or the targeted player\'s account, to the specified level on the specified realm.
+Cannot be used on self. Levels range from 0 (player) to 3 (administrator). Realm ID defaults to -1 (all realms).'),
+(371, '### USAGE: .account set password <accountname> <password> <confirm password>
+Changes the password for the specified account.'),
+(372, '### USAGE: .account 2fa setup
+Begins setup of two-factor authentication for this account.'),
+(373, '### USAGE: .account 2fa remove <token>
+Provide a current 2FA token to disable two-factor authentication for this account.'),
+(374, '### USAGE: .account addon <expansion>
+Sets this account\'s expansion level. 0 = WoW, 1 = TBC, 2 = WotLK.'),
+(375, '### USAGE: .account create <name> <password> [<email>]
+Creates a new account with the specified password and email (if specified).'),
+(376, '### USAGE: .account delete <name>
+Deletes the specified account. Cannot be used on self while connected.'),
+(377, '### USAGE: .account email <old email> <password> <new email> <confirm new email>
+Changes the email on record for this account.'),
+(378, '### USAGE: .account onlinelist
+Shows a list of all currently-connected accounts.'),
+(379, '### USAGE: .account lock country <on/off>
+While enabled, you will only be able to log in from IP addresses in your current country.'),
+(380, '### USAGE: .account lock ip <on/off>
+While enabled, you will only be able to log in from your current IP address.'),
+(381, '### USAGE: .account password <old password> <new password> <confirm password> [<email>]
+Changes the password for this account.
+Whether you need to specify your email address depends on the server settings.'),
+(382, '### USAGE: .account
+Prints information about the current account.');
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index c79d5e11817..1d718927ffd 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -419,23 +419,23 @@ enum TrinityStrings
LANG_COMMAND_WHISPEROFFPLAYER = 363,
LANG_COMMAND_CHEAT_TAXINODES = 364,
LANG_COMMAND_ACHIEVEMENT_ADD_HELP = 365,
- LANG_COMMAND_ACC_SET_ADDON_HELP = 366, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_SET_SEC_REGMAIL_HELP = 367, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_SET_SEC_EMAIL_HELP = 368, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_SET_2FA_HELP = 369, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_SET_SECLEVEL_HELP = 370, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_SET_PASSWORD_HELP = 371, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_2FA_SETUP_HELP = 372, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_2FA_REMOVE_HELP = 373, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_ADDON_HELP = 374, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_CREATE_HELP = 375, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_DELETE_HELP = 376, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_EMAIL_HELP = 377, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_ONLINELIST_HELP = 378, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_LOCK_COUNTRY_HELP = 379, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_LOCK_IP_HELP = 380, // 3.3.5 RESERVED
- LANG_COMMAND_ACC_PASSWORD_HELP = 381, // 3.3.5 RESERVED
- LANG_COMMAND_ACCOUNT_HELP = 382, // 3.3.5 RESERVED
+ LANG_COMMAND_ACC_SET_ADDON_HELP = 366,
+ LANG_COMMAND_ACC_SET_SEC_REGMAIL_HELP = 367,
+ LANG_COMMAND_ACC_SET_SEC_EMAIL_HELP = 368,
+ LANG_COMMAND_ACC_SET_2FA_HELP = 369,
+ LANG_COMMAND_ACC_SET_SECLEVEL_HELP = 370,
+ LANG_COMMAND_ACC_SET_PASSWORD_HELP = 371,
+ LANG_COMMAND_ACC_2FA_SETUP_HELP = 372,
+ LANG_COMMAND_ACC_2FA_REMOVE_HELP = 373,
+ LANG_COMMAND_ACC_ADDON_HELP = 374,
+ LANG_COMMAND_ACC_CREATE_HELP = 375,
+ LANG_COMMAND_ACC_DELETE_HELP = 376,
+ LANG_COMMAND_ACC_EMAIL_HELP = 377,
+ LANG_COMMAND_ACC_ONLINELIST_HELP = 378,
+ LANG_COMMAND_ACC_LOCK_COUNTRY_HELP = 379,
+ LANG_COMMAND_ACC_LOCK_IP_HELP = 380,
+ LANG_COMMAND_ACC_PASSWORD_HELP = 381,
+ LANG_COMMAND_ACCOUNT_HELP = 382,
LANG_COMMAND_LEARN_HELP = 383, // 3.3.5 RESERVED
LANG_COMMAND_UNLEARN_HELP = 384, // 3.3.5 RESERVED
LANG_COMMAND_LEARN_MY_QUESTS_HELP = 385, // 3.3.5 RESERVED
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index 5d122436de4..0b54b04983e 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -53,28 +53,28 @@ public:
{
static ChatCommandTable accountSetCommandTable =
{
- { "addon", HandleAccountSetAddonCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_ADDON, Console::Yes },
- { "sec regmail", HandleAccountSetRegEmailCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_REGMAIL, Console::Yes },
- { "sec email", HandleAccountSetEmailCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_EMAIL, Console::Yes },
- { "gmlevel", HandleAccountSetSecLevelCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SECLEVEL, Console::Yes }, // temp for a transition period
- { "seclevel", HandleAccountSetSecLevelCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SECLEVEL, Console::Yes },
- { "password", HandleAccountSetPasswordCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_PASSWORD, Console::Yes },
- { "2fa", HandleAccountSet2FACommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_2FA, Console::Yes },
+ { "addon", HandleAccountSetAddonCommand, LANG_COMMAND_ACC_SET_ADDON_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_ADDON, Console::Yes },
+ { "sec regmail", HandleAccountSetRegEmailCommand, LANG_COMMAND_ACC_SET_SEC_REGMAIL_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_REGMAIL, Console::Yes },
+ { "sec email", HandleAccountSetEmailCommand, LANG_COMMAND_ACC_SET_SEC_EMAIL_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_EMAIL, Console::Yes },
+ { "gmlevel", HandleAccountSetSecLevelCommand, LANG_COMMAND_ACC_SET_SECLEVEL_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SECLEVEL, Console::Yes }, // temp for a transition period
+ { "seclevel", HandleAccountSetSecLevelCommand, LANG_COMMAND_ACC_SET_SECLEVEL_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_SECLEVEL, Console::Yes },
+ { "password", HandleAccountSetPasswordCommand, LANG_COMMAND_ACC_SET_PASSWORD_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_PASSWORD, Console::Yes },
+ { "2fa", HandleAccountSet2FACommand, LANG_COMMAND_ACC_SET_2FA_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_SET_2FA, Console::Yes },
};
static ChatCommandTable accountCommandTable =
{
- { "2fa setup", HandleAccount2FASetupCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_2FA_SETUP, Console::No },
- { "2fa remove", HandleAccount2FARemoveCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_2FA_REMOVE, Console::No },
- { "addon", HandleAccountAddonCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_ADDON, Console::No },
- { "create", HandleAccountCreateCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_CREATE, Console::Yes },
- { "delete", HandleAccountDeleteCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_DELETE, Console::Yes },
- { "email", HandleAccountEmailCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_EMAIL, Console::No },
- { "onlinelist", HandleAccountOnlineListCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_ONLINE_LIST, Console::Yes },
- { "lock country", HandleAccountLockCountryCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_LOCK_COUNTRY, Console::No },
- { "lock ip", HandleAccountLockIpCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_LOCK_IP, Console::No },
+ { "2fa setup", HandleAccount2FASetupCommand, LANG_COMMAND_ACC_2FA_SETUP_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_2FA_SETUP, Console::No },
+ { "2fa remove", HandleAccount2FARemoveCommand, LANG_COMMAND_ACC_2FA_REMOVE_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_2FA_REMOVE, Console::No },
+ { "addon", HandleAccountAddonCommand, LANG_COMMAND_ACC_ADDON_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_ADDON, Console::No },
+ { "create", HandleAccountCreateCommand, LANG_COMMAND_ACC_CREATE_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_CREATE, Console::Yes },
+ { "delete", HandleAccountDeleteCommand, LANG_COMMAND_ACC_DELETE_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_DELETE, Console::Yes },
+ { "email", HandleAccountEmailCommand, LANG_COMMAND_ACC_EMAIL_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_EMAIL, Console::No },
+ { "onlinelist", HandleAccountOnlineListCommand, LANG_COMMAND_ACC_ONLINELIST_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_ONLINE_LIST, Console::Yes },
+ { "lock country", HandleAccountLockCountryCommand, LANG_COMMAND_ACC_LOCK_COUNTRY_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_LOCK_COUNTRY, Console::No },
+ { "lock ip", HandleAccountLockIpCommand, LANG_COMMAND_ACC_LOCK_IP_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_LOCK_IP, Console::No },
{ "set", accountSetCommandTable },
- { "password", HandleAccountPasswordCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT_PASSWORD, Console::No },
- { "", HandleAccountCommand, rbac::RBAC_PERM_COMMAND_ACCOUNT, Console::No },
+ { "password", HandleAccountPasswordCommand, LANG_COMMAND_ACC_PASSWORD_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT_PASSWORD, Console::No },
+ { "", HandleAccountCommand, LANG_COMMAND_ACCOUNT_HELP, rbac::RBAC_PERM_COMMAND_ACCOUNT, Console::No },
};
static ChatCommandTable commandTable =
{
@@ -695,9 +695,8 @@ public:
if (realmId)
realmID = *realmId;
- // handler->getSession() == nullptr only for console
uint32 playerSecurity;
- if (handler->GetSession())
+ if (handler->IsConsole())
playerSecurity = AccountMgr::GetSecurity(handler->GetSession()->GetAccountId(), realmID);
else
playerSecurity = SEC_CONSOLE;