diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index cdd3b240c8..78fb4c8c25 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -3013,7 +3013,7 @@ INSERT INTO `rbac_permissions` VALUES (44,'Receive global GM messages/texts'), (45,'Join channels without announce'), (46,'Change channel settings without being channel moderator'), -(47,'Enables lower security than target check'), +(47,'Can ignore non-strong lower security checks if it\'s disabled in config'), (48,'Enable IP, Last Login and EMail output in pinfo'), (49,'Forces to enter the email for confirmation on password change'), (50,'Allow user to check his own email with .account'), @@ -4216,6 +4216,7 @@ INSERT INTO `updates` VALUES ('2025_01_29_00_auth.sql','7334CFE779D5F79AFAC8EA269950FC07E625810F','ARCHIVED','2025-01-29 12:57:32',0), ('2025_01_31_00_auth.sql','DF2640D25C15E41358C1ED46B4F86043583FC8FB','ARCHIVED','2025-01-31 11:51:23',0), ('2025_02_03_00_auth.sql','87033116EF72051499AF23FE14545D828F5A9B59','ARCHIVED','2025-02-03 22:51:31',0), +('2025_02_14_00_auth.sql','4A30E92FF519BB41C520CDBF90019291217C26A2','RELEASED','2025-02-14 17:20:00',0), ('2025_02_19_00_auth.sql','6D0EBB3E2DD1B26682A424EDDC090F515BCA5B32','ARCHIVED','2025-02-19 00:16:52',0), ('2025_02_21_00_auth.sql','E9EA49CEB396561D641A7C82251DCBF9DF3E9983','ARCHIVED','2025-02-21 00:53:17',0), ('2025_03_02_00_auth.sql','1CEAB7B308823D5FAA51360A1B2A7CA0E89A6081','ARCHIVED','2025-03-02 14:50:10',0), diff --git a/sql/updates/auth/master/2025_02_14_00_auth.sql b/sql/updates/auth/master/2025_02_14_00_auth.sql new file mode 100644 index 0000000000..d147a6b499 --- /dev/null +++ b/sql/updates/auth/master/2025_02_14_00_auth.sql @@ -0,0 +1,2 @@ +-- +UPDATE `rbac_permissions` SET `name`='Can ignore non-strong lower security checks if it\'s disabled in config' WHERE `id`=47; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index b568606cf0..c6257a2cd6 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -97,7 +97,7 @@ enum RBACPermissions RBAC_PERM_RECEIVE_GLOBAL_GM_TEXTMESSAGE = 44, RBAC_PERM_SILENTLY_JOIN_CHANNEL = 45, RBAC_PERM_CHANGE_CHANNEL_NOT_MODERATOR = 46, - RBAC_PERM_CHECK_FOR_LOWER_SECURITY = 47, + RBAC_PERM_CAN_IGNORE_LOWER_SECURITY_CHECK = 47, RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA = 48, RBAC_PERM_EMAIL_CONFIRM_FOR_PASS_CHANGE = 49, RBAC_PERM_MAY_CHECK_OWN_EMAIL = 50, diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index b78f0c0ef9..23458c2299 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -87,7 +87,7 @@ bool ChatHandler::HasLowerSecurityAccount(WorldSession* target, uint32 target_ac return false; // ignore only for non-players for non strong checks (when allow apply command at least to same sec level) - if (m_session->HasPermission(rbac::RBAC_PERM_CHECK_FOR_LOWER_SECURITY) && !strong && !sWorld->getBoolConfig(CONFIG_GM_LOWER_SECURITY)) + if (m_session->HasPermission(rbac::RBAC_PERM_CAN_IGNORE_LOWER_SECURITY_CHECK) && !strong && !sWorld->getBoolConfig(CONFIG_GM_LOWER_SECURITY)) return false; if (target) diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index bc89b80810..88f6cbfcf9 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2259,8 +2259,12 @@ GM.AllowInvite = 0 # # GM.LowerSecurity -# Description: Allow lower security levels to use commands on higher security level -# characters. +# Description: Disallow lower security levels to use commands on higher security level +# characters. Regardless of this value, lower security check is always +# enabled for accounts without RBAC_PERM_CAN_IGNORE_LOWER_SECURITY_CHECK. +# This option also does not affect "strong" checks, such as in +# certain .account and .rbac commands, which are always enabled. +# # Default: 0 - (Disabled) # 1 - (Enabled)