Scripts/Commands: Convert rbac commands to new system
Port From (https://github.com/TrinityCore/TrinityCore/commit/b3b6e2715eb2a75805b7d879a1bef1074c085143)
This commit is contained in:
@@ -117,8 +117,8 @@ namespace Framework.Constants
|
|||||||
RoleModerator = 198,
|
RoleModerator = 198,
|
||||||
RolePlayer = 199,
|
RolePlayer = 199,
|
||||||
|
|
||||||
CommandRbac = 200,
|
// 200 previously used, do not reuse
|
||||||
CommandRbacAcc = 201,
|
// 201 previously used, do not reuse
|
||||||
CommandRbacAccPermList = 202,
|
CommandRbacAccPermList = 202,
|
||||||
CommandRbacAccPermGrant = 203,
|
CommandRbacAccPermGrant = 203,
|
||||||
CommandRbacAccPermDeny = 204,
|
CommandRbacAccPermDeny = 204,
|
||||||
@@ -283,7 +283,7 @@ namespace Framework.Constants
|
|||||||
CommandGuildUninvite = 405,
|
CommandGuildUninvite = 405,
|
||||||
CommandGuildRank = 406,
|
CommandGuildRank = 406,
|
||||||
CommandGuildRename = 407,
|
CommandGuildRename = 407,
|
||||||
CommandHonor = 408,
|
// 408 previously used, do not reuse
|
||||||
CommandHonorAdd = 409,
|
CommandHonorAdd = 409,
|
||||||
CommandHonorAddKill = 410,
|
CommandHonorAddKill = 410,
|
||||||
CommandHonorUpdate = 411,
|
CommandHonorUpdate = 411,
|
||||||
|
|||||||
@@ -233,7 +233,8 @@ namespace Game.Chat
|
|||||||
|
|
||||||
public uint GetID() { return _id; }
|
public uint GetID() { return _id; }
|
||||||
public string GetName() { return _name; }
|
public string GetName() { return _name; }
|
||||||
public WorldSession GetSession() { return _session; }
|
public bool IsConnected() { return _session != null; }
|
||||||
|
public WorldSession GetConnectedSession() { return _session; }
|
||||||
|
|
||||||
public static AccountIdentifier ParseFromString(string arg)
|
public static AccountIdentifier ParseFromString(string arg)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,33 +27,30 @@ namespace Game.Chat.Commands
|
|||||||
class RbacComands
|
class RbacComands
|
||||||
{
|
{
|
||||||
[Command("list", RBACPermissions.CommandRbacList, true)]
|
[Command("list", RBACPermissions.CommandRbacList, true)]
|
||||||
static bool HandleRBACListPermissionsCommand(CommandHandler handler, StringArguments args)
|
static bool HandleRBACListPermissionsCommand(CommandHandler handler, uint? permId)
|
||||||
{
|
{
|
||||||
uint id = args.NextUInt32();
|
if (!permId.HasValue)
|
||||||
|
|
||||||
if (id == 0)
|
|
||||||
{
|
{
|
||||||
var permissions = Global.AccountMgr.GetRBACPermissionList();
|
var permissions = Global.AccountMgr.GetRBACPermissionList();
|
||||||
handler.SendSysMessage(CypherStrings.RbacListPermissionsHeader);
|
handler.SendSysMessage(CypherStrings.RbacListPermissionsHeader);
|
||||||
foreach (var permission in permissions.Values)
|
foreach (var (_, permission) in permissions)
|
||||||
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
RBACPermission permission = Global.AccountMgr.GetRBACPermission(id);
|
RBACPermission permission = Global.AccountMgr.GetRBACPermission(permId.Value);
|
||||||
if (permission == null)
|
if (permission == null)
|
||||||
{
|
{
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, id);
|
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, permId.Value);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacListPermissionsHeader);
|
handler.SendSysMessage(CypherStrings.RbacListPermissionsHeader);
|
||||||
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
||||||
handler.SendSysMessage(CypherStrings.RbacListPermsLinkedHeader);
|
handler.SendSysMessage(CypherStrings.RbacListPermsLinkedHeader);
|
||||||
var permissions = permission.GetLinkedPermissions();
|
foreach (var linkedPerm in permission.GetLinkedPermissions())
|
||||||
foreach (var permissionId in permissions)
|
|
||||||
{
|
{
|
||||||
RBACPermission rbacPermission = Global.AccountMgr.GetRBACPermission(permissionId);
|
RBACPermission rbacPermission = Global.AccountMgr.GetRBACPermission(linkedPerm);
|
||||||
if (rbacPermission != null)
|
if (rbacPermission != null)
|
||||||
handler.SendSysMessage(CypherStrings.RbacListElement, rbacPermission.GetId(), rbacPermission.GetName());
|
handler.SendSysMessage(CypherStrings.RbacListElement, rbacPermission.GetId(), rbacPermission.GetName());
|
||||||
}
|
}
|
||||||
@@ -65,67 +62,42 @@ namespace Game.Chat.Commands
|
|||||||
[CommandGroup("account")]
|
[CommandGroup("account")]
|
||||||
class RbacAccountCommands
|
class RbacAccountCommands
|
||||||
{
|
{
|
||||||
[Command("grant", RBACPermissions.CommandRbacAccPermGrant, true)]
|
|
||||||
static bool HandleRBACPermGrantCommand(CommandHandler handler, StringArguments args)
|
|
||||||
{
|
|
||||||
RBACCommandData command = ReadParams(args, handler);
|
|
||||||
if (command == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
RBACCommandResult result = command.rbac.GrantPermission(command.id, command.realmId);
|
|
||||||
RBACPermission permission = Global.AccountMgr.GetRBACPermission(command.id);
|
|
||||||
|
|
||||||
switch (result)
|
|
||||||
{
|
|
||||||
case RBACCommandResult.CantAddAlreadyAdded:
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermGrantedInList, command.id, permission.GetName(),
|
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
|
||||||
break;
|
|
||||||
case RBACCommandResult.InDeniedList:
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermGrantedInDeniedList, command.id, permission.GetName(),
|
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
|
||||||
break;
|
|
||||||
case RBACCommandResult.OK:
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermGranted, command.id, permission.GetName(),
|
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
|
||||||
break;
|
|
||||||
case RBACCommandResult.IdDoesNotExists:
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, command.id);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Command("deny", RBACPermissions.CommandRbacAccPermDeny, true)]
|
[Command("deny", RBACPermissions.CommandRbacAccPermDeny, true)]
|
||||||
static bool HandleRBACPermDenyCommand(CommandHandler handler, StringArguments args)
|
static bool HandleRBACPermDenyCommand(CommandHandler handler, string accountName, uint permId, int? realmId)
|
||||||
{
|
{
|
||||||
RBACCommandData command = ReadParams(args, handler);
|
var account = AccountIdentifier.ParseFromString(accountName);
|
||||||
|
if (account == null)
|
||||||
if (command == null)
|
account = AccountIdentifier.FromTarget(handler);
|
||||||
|
if (account == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
RBACCommandResult result = command.rbac.DenyPermission(command.id, command.realmId);
|
if (handler.HasLowerSecurityAccount(null, account.GetID(), true))
|
||||||
RBACPermission permission = Global.AccountMgr.GetRBACPermission(command.id);
|
return false;
|
||||||
|
|
||||||
|
if (!realmId.HasValue)
|
||||||
|
realmId = -1;
|
||||||
|
|
||||||
|
RBACCommandData data = GetRBACData(account);
|
||||||
|
|
||||||
|
RBACCommandResult result = data.rbac.DenyPermission(permId, realmId.Value);
|
||||||
|
RBACPermission permission = Global.AccountMgr.GetRBACPermission(permId);
|
||||||
|
|
||||||
switch (result)
|
switch (result)
|
||||||
{
|
{
|
||||||
case RBACCommandResult.CantAddAlreadyAdded:
|
case RBACCommandResult.CantAddAlreadyAdded:
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermDeniedInList, command.id, permission.GetName(),
|
handler.SendSysMessage(CypherStrings.RbacPermDeniedInList, permId, permission.GetName(),
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
break;
|
break;
|
||||||
case RBACCommandResult.InGrantedList:
|
case RBACCommandResult.InGrantedList:
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermDeniedInGrantedList, command.id, permission.GetName(),
|
handler.SendSysMessage(CypherStrings.RbacPermDeniedInGrantedList, permId, permission.GetName(),
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
break;
|
break;
|
||||||
case RBACCommandResult.OK:
|
case RBACCommandResult.OK:
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermDenied, command.id, permission.GetName(),
|
handler.SendSysMessage(CypherStrings.RbacPermDenied, permId, permission.GetName(),
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
break;
|
break;
|
||||||
case RBACCommandResult.IdDoesNotExists:
|
case RBACCommandResult.IdDoesNotExists:
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, command.id);
|
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, permId);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -134,29 +106,42 @@ namespace Game.Chat.Commands
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("revoke", RBACPermissions.CommandRbacAccPermRevoke, true)]
|
[Command("grant", RBACPermissions.CommandRbacAccPermGrant, true)]
|
||||||
static bool HandleRBACPermRevokeCommand(CommandHandler handler, StringArguments args)
|
static bool HandleRBACPermGrantCommand(CommandHandler handler, string accountName, uint permId, int? realmId)
|
||||||
{
|
{
|
||||||
RBACCommandData command = ReadParams(args, handler);
|
var account = AccountIdentifier.ParseFromString(accountName);
|
||||||
|
if (account == null)
|
||||||
if (command == null)
|
account = AccountIdentifier.FromTarget(handler);
|
||||||
|
if (account == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
RBACCommandResult result = command.rbac.RevokePermission(command.id, command.realmId);
|
if (handler.HasLowerSecurityAccount(null, account.GetID(), true))
|
||||||
RBACPermission permission = Global.AccountMgr.GetRBACPermission(command.id);
|
return false;
|
||||||
|
|
||||||
|
if (!realmId.HasValue)
|
||||||
|
realmId = -1;
|
||||||
|
|
||||||
|
RBACCommandData data = GetRBACData(account);
|
||||||
|
|
||||||
|
RBACCommandResult result = data.rbac.GrantPermission(permId, realmId.Value);
|
||||||
|
RBACPermission permission = Global.AccountMgr.GetRBACPermission(permId);
|
||||||
|
|
||||||
switch (result)
|
switch (result)
|
||||||
{
|
{
|
||||||
case RBACCommandResult.CantRevokeNotInList:
|
case RBACCommandResult.CantAddAlreadyAdded:
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermRevokedNotInList, command.id, permission.GetName(),
|
handler.SendSysMessage(CypherStrings.RbacPermGrantedInList, permId, permission.GetName(),
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
|
break;
|
||||||
|
case RBACCommandResult.InDeniedList:
|
||||||
|
handler.SendSysMessage(CypherStrings.RbacPermGrantedInDeniedList, permId, permission.GetName(),
|
||||||
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
break;
|
break;
|
||||||
case RBACCommandResult.OK:
|
case RBACCommandResult.OK:
|
||||||
handler.SendSysMessage(CypherStrings.RbacPermRevoked, command.id, permission.GetName(),
|
handler.SendSysMessage(CypherStrings.RbacPermGranted, permId, permission.GetName(),
|
||||||
command.realmId, command.rbac.GetId(), command.rbac.GetName());
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
break;
|
break;
|
||||||
case RBACCommandResult.IdDoesNotExists:
|
case RBACCommandResult.IdDoesNotExists:
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, command.id);
|
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, permId);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -166,15 +151,18 @@ namespace Game.Chat.Commands
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Command("list", RBACPermissions.CommandRbacAccPermList, true)]
|
[Command("list", RBACPermissions.CommandRbacAccPermList, true)]
|
||||||
static bool HandleRBACPermListCommand(CommandHandler handler, StringArguments args)
|
static bool HandleRBACPermListCommand(CommandHandler handler, string accountName)
|
||||||
{
|
{
|
||||||
RBACCommandData command = ReadParams(args, handler, false);
|
var account = AccountIdentifier.ParseFromString(accountName);
|
||||||
|
if (account == null)
|
||||||
if (command == null)
|
account = AccountIdentifier.FromTarget(handler);
|
||||||
|
if (account == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacListHeaderGranted, command.rbac.GetId(), command.rbac.GetName());
|
RBACCommandData data = GetRBACData(account);
|
||||||
var granted = command.rbac.GetGrantedPermissions();
|
|
||||||
|
handler.SendSysMessage(CypherStrings.RbacListHeaderGranted, data.rbac.GetId(), data.rbac.GetName());
|
||||||
|
var granted = data.rbac.GetGrantedPermissions();
|
||||||
if (granted.Empty())
|
if (granted.Empty())
|
||||||
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
||||||
else
|
else
|
||||||
@@ -186,8 +174,8 @@ namespace Game.Chat.Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacListHeaderDenied, command.rbac.GetId(), command.rbac.GetName());
|
handler.SendSysMessage(CypherStrings.RbacListHeaderDenied, data.rbac.GetId(), data.rbac.GetName());
|
||||||
var denied = command.rbac.GetDeniedPermissions();
|
var denied = data.rbac.GetDeniedPermissions();
|
||||||
if (denied.Empty())
|
if (denied.Empty())
|
||||||
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
||||||
else
|
else
|
||||||
@@ -198,8 +186,8 @@ namespace Game.Chat.Commands
|
|||||||
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
handler.SendSysMessage(CypherStrings.RbacListElement, permission.GetId(), permission.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
handler.SendSysMessage(CypherStrings.RbacListHeaderBySecLevel, command.rbac.GetId(), command.rbac.GetName(), command.rbac.GetSecurityLevel());
|
handler.SendSysMessage(CypherStrings.RbacListHeaderBySecLevel, data.rbac.GetId(), data.rbac.GetName(), data.rbac.GetSecurityLevel());
|
||||||
var defaultPermissions = Global.AccountMgr.GetRBACDefaultPermissions(command.rbac.GetSecurityLevel());
|
var defaultPermissions = Global.AccountMgr.GetRBACDefaultPermissions(data.rbac.GetSecurityLevel());
|
||||||
if (defaultPermissions.Empty())
|
if (defaultPermissions.Empty())
|
||||||
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
handler.SendSysMessage(CypherStrings.RbacListEmpty);
|
||||||
else
|
else
|
||||||
@@ -213,105 +201,61 @@ namespace Game.Chat.Commands
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("revoke", RBACPermissions.CommandRbacAccPermRevoke, true)]
|
||||||
|
static bool HandleRBACPermRevokeCommand(CommandHandler handler, string accountName, uint permId, int? realmId)
|
||||||
|
{
|
||||||
|
var account = AccountIdentifier.ParseFromString(accountName);
|
||||||
|
if (account == null)
|
||||||
|
account = AccountIdentifier.FromTarget(handler);
|
||||||
|
if (account == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (handler.HasLowerSecurityAccount(null, account.GetID(), true))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!realmId.HasValue)
|
||||||
|
realmId = -1;
|
||||||
|
|
||||||
|
RBACCommandData data = GetRBACData(account);
|
||||||
|
|
||||||
|
RBACCommandResult result = data.rbac.RevokePermission(permId, realmId.Value);
|
||||||
|
RBACPermission permission = Global.AccountMgr.GetRBACPermission(permId);
|
||||||
|
|
||||||
|
switch (result)
|
||||||
|
{
|
||||||
|
case RBACCommandResult.CantRevokeNotInList:
|
||||||
|
handler.SendSysMessage(CypherStrings.RbacPermRevokedNotInList, permId, permission.GetName(),
|
||||||
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
|
break;
|
||||||
|
case RBACCommandResult.OK:
|
||||||
|
handler.SendSysMessage(CypherStrings.RbacPermRevoked, permId, permission.GetName(),
|
||||||
|
realmId.Value, data.rbac.GetId(), data.rbac.GetName());
|
||||||
|
break;
|
||||||
|
case RBACCommandResult.IdDoesNotExists:
|
||||||
|
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, permId);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static RBACCommandData ReadParams(StringArguments args, CommandHandler handler, bool checkParams = true)
|
static RBACCommandData GetRBACData(AccountIdentifier account)
|
||||||
{
|
{
|
||||||
if (args.Empty())
|
if (account.IsConnected())
|
||||||
return null;
|
return new RBACCommandData() { rbac = account.GetConnectedSession().GetRBACData(), needDelete = false };
|
||||||
|
|
||||||
string param1 = args.NextString();
|
RBACData rbac = new(account.GetID(), account.GetName(), (int)Global.WorldMgr.GetRealmId().Index, (byte)Global.AccountMgr.GetSecurity(account.GetID(), (int)Global.WorldMgr.GetRealmId().Index));
|
||||||
string param2 = args.NextString();
|
rbac.LoadFromDB();
|
||||||
string param3 = args.NextString();
|
|
||||||
|
|
||||||
int realmId = -1;
|
return new RBACCommandData() { rbac = rbac, needDelete = true };
|
||||||
uint accountId;
|
|
||||||
string accountName;
|
|
||||||
uint id = 0;
|
|
||||||
RBACData rdata = null;
|
|
||||||
bool useSelectedPlayer = false;
|
|
||||||
|
|
||||||
if (checkParams)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(param3))
|
|
||||||
{
|
|
||||||
if (!int.TryParse(param2, out realmId))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
if (!uint.TryParse(param1, out id))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
useSelectedPlayer = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!uint.TryParse(param2, out id))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
if (!int.TryParse(param3, out realmId))
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (id == 0)
|
|
||||||
{
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterId, id);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (realmId < -1 || realmId == 0)
|
|
||||||
{
|
|
||||||
handler.SendSysMessage(CypherStrings.RbacWrongParameterRealm, realmId);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (string.IsNullOrEmpty(param1))
|
|
||||||
useSelectedPlayer = true;
|
|
||||||
|
|
||||||
if (useSelectedPlayer)
|
|
||||||
{
|
|
||||||
Player player = handler.GetSelectedPlayer();
|
|
||||||
if (!player)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
rdata = player.GetSession().GetRBACData();
|
|
||||||
accountId = rdata.GetId();
|
|
||||||
Global.AccountMgr.GetName(accountId, out accountName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
accountName = param1;
|
|
||||||
accountId = Global.AccountMgr.GetId(accountName);
|
|
||||||
|
|
||||||
if (accountId == 0)
|
|
||||||
{
|
|
||||||
handler.SendSysMessage(CypherStrings.AccountNotExist, accountName);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (checkParams && handler.HasLowerSecurityAccount(null, accountId, true))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
RBACCommandData data = new();
|
|
||||||
|
|
||||||
if (rdata == null)
|
|
||||||
{
|
|
||||||
data.rbac = new RBACData(accountId, accountName, (int)Global.WorldMgr.GetRealm().Id.Index, (byte)Global.AccountMgr.GetSecurity(accountId, (int)Global.WorldMgr.GetRealm().Id.Index));
|
|
||||||
data.rbac.LoadFromDB();
|
|
||||||
data.needDelete = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
data.rbac = rdata;
|
|
||||||
|
|
||||||
data.id = id;
|
|
||||||
data.realmId = realmId;
|
|
||||||
return data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class RBACCommandData
|
class RBACCommandData
|
||||||
{
|
{
|
||||||
public uint id;
|
|
||||||
public int realmId;
|
|
||||||
public RBACData rbac;
|
public RBACData rbac;
|
||||||
public bool needDelete;
|
public bool needDelete;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user