started work on getting the restart functionality in the gamelogserver

fix bug with unbanned players still showing as banned via lock icon
move player based stuff into client class
finally renamed Player to EFClient via partial class
don't try to run this build because it's in between stages
This commit is contained in:
RaidMax
2018-11-05 21:01:29 -06:00
parent d9d548ea18
commit ed83c4c011
65 changed files with 864 additions and 743 deletions

View File

@ -1,16 +1,16 @@
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using SharedLibraryCore.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebfrontCore.Controllers.API
{
public class ApiController : BaseController
{
public IActionResult Index() => Ok($"IW4MAdmin API");
public IActionResult Index()
{
return Ok($"IW4MAdmin API");
}
[HttpGet]
public IActionResult Event(bool shouldConsume = true)
@ -28,12 +28,12 @@ namespace WebfrontCore.Controllers.API
Id = server.GetHashCode(),
Name = server.Hostname,
MaxPlayers = server.MaxClients,
CurrentPlayers = server.GetPlayersAsList().Count,
CurrentPlayers = server.GetClientsAsList().Count,
Map = server.CurrentMap,
GameMode = server.Gametype,
Port = server.GetPort(),
Game = server.GameName.ToString(),
Players = server.GetPlayersAsList()
Players = server.GetClientsAsList()
.Select(player => new
{
player.Name,
@ -53,5 +53,23 @@ namespace WebfrontCore.Controllers.API
return Json(serverInfo);
}
[HttpGet]
public IActionResult RestartApproved()
{
var serverToRestart = Manager.GetServers().FirstOrDefault(_server => _server.RestartRequested);
if (serverToRestart != null)
{
serverToRestart.RestartRequested = false;
}
return serverToRestart != null ?
(IActionResult)Json(new
{
port = serverToRestart.GetPort()
}) :
Unauthorized();
}
}
}

View File

@ -5,7 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using WebfrontCore.ViewModels;
using static SharedLibraryCore.Objects.Player;
using static SharedLibraryCore.Database.Models.EFClient;
namespace WebfrontCore.Controllers
{

View File

@ -46,7 +46,7 @@ namespace WebfrontCore.Controllers
Client = Client ?? new EFClient()
{
ClientId = -1,
Level = Player.Permission.User,
Level = EFClient.Permission.User,
CurrentAlias = new EFAlias() { Name = "Web Console Guest" }
};
@ -55,7 +55,7 @@ namespace WebfrontCore.Controllers
try
{
Client.ClientId = Convert.ToInt32(base.User.Claims.First(c => c.Type == ClaimTypes.Sid).Value);
Client.Level = (Player.Permission)Enum.Parse(typeof(Player.Permission), User.Claims.First(c => c.Type == ClaimTypes.Role).Value);
Client.Level = (EFClient.Permission)Enum.Parse(typeof(EFClient.Permission), User.Claims.First(c => c.Type == ClaimTypes.Role).Value);
Client.CurrentAlias = new EFAlias() { Name = User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value };
var stillExists = Manager.GetPrivilegedClients()[Client.ClientId];
@ -81,7 +81,7 @@ namespace WebfrontCore.Controllers
else
{
Client.ClientId = 1;
Client.Level = Player.Permission.Console;
Client.Level = EFClient.Permission.Console;
Client.CurrentAlias = new EFAlias() { Name = "IW4MAdmin" };
}

View File

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using SharedLibraryCore.Database;
using SharedLibraryCore.Database.Models;
using SharedLibraryCore.Dtos;
using SharedLibraryCore.Services;
using System;
@ -63,7 +64,7 @@ namespace WebfrontCore.Controllers
var administeredPenaltiesMeta = await Manager.GetPenaltyService()
.ReadGetClientPenaltiesAsync(client.ClientId, false);
if (Authorized && client.Level > SharedLibraryCore.Objects.Player.Permission.Trusted)
if (Authorized && client.Level > EFClient.Permission.Trusted)
clientDto.Meta.Add(new ProfileMeta()
{
Key = Localization["WEBFRONT_CLIENT_META_MASKED"],
@ -122,7 +123,7 @@ namespace WebfrontCore.Controllers
.OrderByDescending(a => a.Level)
.GroupBy(a => a.LinkId).Select(a => a.First());
var adminsDict = new Dictionary<SharedLibraryCore.Objects.Player.Permission, IList<ClientInfo>>();
var adminsDict = new Dictionary<EFClient.Permission, IList<ClientInfo>>();
foreach (var admin in admins)
{

View File

@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using SharedLibraryCore.Database.Models;
using SharedLibraryCore.Dtos;
using SharedLibraryCore.Objects;
using System;
@ -29,7 +30,7 @@ namespace WebfrontCore.Controllers
public async Task<IActionResult> ExecuteAsync(int serverId, string command)
{
var server = Manager.GetServers().First(s => s.GetHashCode() == serverId);
var client = new Player()
var client = new EFClient()
{
ClientId = Client.ClientId,
Level = Client.Level,

View File

@ -27,7 +27,7 @@ namespace WebfrontCore.Controllers
ClientCount = s.ClientNum,
MaxClients = s.MaxClients,
GameType = s.Gametype,
Players = s.GetPlayersAsList()
Players = s.GetClientsAsList()
.Select(p => new PlayerInfo
{
Name = p.Name,
@ -36,7 +36,7 @@ namespace WebfrontCore.Controllers
LevelInt = (int)p.Level
}).ToList(),
ChatHistory = s.ChatHistory,
PlayerHistory = s.PlayerHistory.ToArray(),
PlayerHistory = s.ClientHistory.ToArray(),
};
return PartialView("_ClientActivity", serverInfo);
}