aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Accounts/RBAC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Accounts/RBAC.cpp')
-rw-r--r--src/server/game/Accounts/RBAC.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Accounts/RBAC.cpp b/src/server/game/Accounts/RBAC.cpp
index 27669f1b012..d8333ce74d8 100644
--- a/src/server/game/Accounts/RBAC.cpp
+++ b/src/server/game/Accounts/RBAC.cpp
@@ -390,6 +390,8 @@ RBACCommandResult RBACData::RevokePermission(uint32 permissionId, int32 realmId
void RBACData::LoadFromDB()
{
+ ClearData();
+
TC_LOG_INFO(LOG_FILTER_RBAC, "RBACData::LoadFromDB [Id: %u Name: %s]", GetId(), GetName().c_str());
TC_LOG_DEBUG(LOG_FILTER_RBAC, "RBACData::LoadFromDB [Id: %u Name: %s]: Loading groups", GetId(), GetName().c_str());
@@ -451,7 +453,7 @@ void RBACData::LoadFromDB()
TC_LOG_DEBUG(LOG_FILTER_RBAC, "RBACData::LoadFromDB [Id: %u Name: %s]: Adding default groups", GetId(), GetName().c_str());
// Add default groups
- RBACGroupContainer const& groups = sAccountMgr->GetRBACDefaultGroups();
+ RBACGroupContainer const& groups = sAccountMgr->GetRBACDefaultGroups(GetSecurityLevel());
for (RBACGroupContainer::const_iterator itr = groups.begin(); itr != groups.end(); ++itr)
AddGroup(*itr);
@@ -496,4 +498,14 @@ void RBACData::CalculateNewPermissions()
_globalPerms &= ~role->GetPermissions();
}
+void RBACData::ClearData()
+{
+ _groups.clear();
+ _grantedRoles.clear();
+ _deniedRoles.clear();
+ _grantedPerms.reset();
+ _deniedPerms.reset();
+ _globalPerms.reset();
+}
+
}