diff options
-rw-r--r-- | sql/updates/world/master/2022_02_27_35_world_2020_09_22_01_world.sql | 42 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/Language.h | 34 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_account.cpp | 39 |
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; |