aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormthsena <mthsena@gmail.com>2014-12-27 18:10:47 +0000
committerNayd <dnpd.dd@gmail.com>2014-12-27 18:10:47 +0000
commitc8e555f65867b67840013c48f4665aa08ccc6392 (patch)
tree4718786a67dbfa07fe237643817fbddb7849a901 /src
parent959ea73734f510d2761bd8f19ff95ce1fc093ba5 (diff)
Core/RBAC: Add two side trade to RBAC
(cherry-picked from commit 3ee2f0d2bf9d5f859c8022ca49f1889c35584ffe)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Accounts/RBAC.h1
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index bb347113e60..54dcb73fb35 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -100,6 +100,7 @@ enum RBACPermissions
RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA = 48,
RBAC_PERM_EMAIL_CONFIRM_FOR_PASS_CHANGE = 49,
RBAC_PERM_MAY_CHECK_OWN_EMAIL = 50,
+ RBAC_PERM_ALLOW_TWO_SIDE_TRADE = 51,
// Free space for core permissions (till 149)
// Roles (Permissions with delegated permissions) use 199 and descending
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index dd5563e7a52..aa4579508f2 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -773,7 +773,9 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return;
}
- if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_TRADE) && pOther->GetTeam() !=_player->GetTeam())
+ if (pOther->GetTeam() != _player->GetTeam() &&
+ (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_TRADE) &&
+ !GetPlayer()->GetSession()->HasPermission(rbac::RBAC_PERM_ALLOW_TWO_SIDE_TRADE)))
{
info.Status = TRADE_STATUS_WRONG_FACTION;
SendTradeStatus(info);