Make client console check perms locally (#2188)

This commit is contained in:
metalgearsloth
2021-12-13 10:43:33 +11:00
committed by GitHub
parent 04ed7e14e2
commit b5ac7752d4
2 changed files with 14 additions and 1 deletions

View File

@@ -1,7 +1,10 @@
using System;
using System.Collections.Generic;
using Robust.Client.Log;
using Robust.Client.Player;
using Robust.Shared.Console;
using Robust.Shared.Enums;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Network;
using Robust.Shared.Network.Messages;
@@ -40,6 +43,8 @@ namespace Robust.Client.Console
/// <inheritdoc cref="IClientConsoleHost" />
internal class ClientConsoleHost : ConsoleHost, IClientConsoleHost
{
[Dependency] private readonly IClientConGroupController _conGroup = default!;
private bool _requestedCommands;
/// <inheritdoc />
@@ -103,6 +108,14 @@ namespace Robust.Client.Console
if (AvailableCommands.ContainsKey(commandName))
{
var playerManager = IoCManager.Resolve<IPlayerManager>();
if (!_conGroup.CanCommand(commandName) && playerManager.LocalPlayer?.Session.Status > SessionStatus.Connecting)
{
WriteError(null, $"Insufficient perms for command: {commandName}");
return;
}
var command1 = AvailableCommands[commandName];
args.RemoveAt(0);
var shell = new ConsoleShell(this, null);