the meats
This commit is contained in:
25
WebfrontCore/Controllers/BaseController.cs
Normal file
25
WebfrontCore/Controllers/BaseController.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using IW4MAdmin;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using SharedLibrary;
|
||||
using SharedLibrary.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class BaseController : Controller
|
||||
{
|
||||
protected ApplicationManager Manager;
|
||||
protected bool Authorized { get; private set; }
|
||||
|
||||
public override void OnActionExecuting(ActionExecutingContext context)
|
||||
{
|
||||
Manager = IW4MAdmin.Program.ServerManager;
|
||||
Authorized = Manager.AdministratorIPs.Contains(context.HttpContext.Connection.RemoteIpAddress.ToString().ConvertToIP());
|
||||
base.OnActionExecuting(context);
|
||||
}
|
||||
}
|
||||
}
|
@ -9,11 +9,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class ClientController : Controller
|
||||
public class ClientController : BaseController
|
||||
{
|
||||
public async Task<IActionResult> ProfileAsync(int id)
|
||||
{
|
||||
var client = await IW4MAdmin.ApplicationManager.GetInstance().GetClientService().Get(id);
|
||||
var client = await Manager.GetClientService().Get(id);
|
||||
var clientDto = new PlayerInfo()
|
||||
{
|
||||
Name = client.Name,
|
||||
@ -38,11 +38,15 @@ namespace WebfrontCore.Controllers
|
||||
.OrderBy(i => i)
|
||||
.ToList(),
|
||||
};
|
||||
|
||||
clientDto.Meta.AddRange(await MetaService.GetMeta(client.ClientId));
|
||||
clientDto.Meta.AddRange(await IW4MAdmin.ApplicationManager.GetInstance().GetPenaltyService().ReadGetClientPenaltiesAsync(client.ClientId));
|
||||
clientDto.Meta.AddRange(await IW4MAdmin.ApplicationManager.GetInstance().GetPenaltyService().ReadGetClientPenaltiesAsync(client.ClientId, false));
|
||||
clientDto.Meta = clientDto.Meta.OrderByDescending(m => m.When).ToList();
|
||||
var meta = await MetaService.GetMeta(client.ClientId);
|
||||
clientDto.Meta.AddRange(Authorized ? meta : meta.Where(m => !m.Sensitive));
|
||||
clientDto.Meta.AddRange(await Manager.GetPenaltyService()
|
||||
.ReadGetClientPenaltiesAsync(client.ClientId));
|
||||
clientDto.Meta.AddRange(await Manager.GetPenaltyService()
|
||||
.ReadGetClientPenaltiesAsync(client.ClientId, false));
|
||||
clientDto.Meta = clientDto.Meta
|
||||
.OrderByDescending(m => m.When)
|
||||
.ToList();
|
||||
|
||||
ViewBag.Title = clientDto.Name;
|
||||
|
||||
@ -51,7 +55,7 @@ namespace WebfrontCore.Controllers
|
||||
|
||||
public async Task<IActionResult> PrivilegedAsync()
|
||||
{
|
||||
var admins = (await IW4MAdmin.ApplicationManager.GetInstance().GetClientService().GetPrivilegedClients())
|
||||
var admins = (await Manager.GetClientService().GetPrivilegedClients())
|
||||
.Where(a => a.Active)
|
||||
.OrderByDescending(a => a.Level);
|
||||
var adminsDict = new Dictionary<SharedLibrary.Objects.Player.Permission, IList<ClientInfo>>();
|
||||
@ -74,7 +78,7 @@ namespace WebfrontCore.Controllers
|
||||
|
||||
public async Task<IActionResult> FindAsync(string clientName)
|
||||
{
|
||||
var clients = (await IW4MAdmin.ApplicationManager.GetInstance().GetClientService().GetClientByName(clientName))
|
||||
var clients = (await Manager.GetClientService().GetClientByName(clientName))
|
||||
.OrderByDescending(c => c.LastConnection);
|
||||
var clientsDto = clients.Select(c => new PlayerInfo()
|
||||
{
|
||||
|
@ -9,11 +9,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class ConsoleController : Controller
|
||||
public class ConsoleController : BaseController
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
var activeServers = IW4MAdmin.ApplicationManager.GetInstance().Servers.Select(s => new ServerInfo()
|
||||
var activeServers = Manager.Servers.Select(s => new ServerInfo()
|
||||
{
|
||||
Name = s.Hostname,
|
||||
ID = s.GetHashCode(),
|
||||
@ -38,10 +38,10 @@ namespace WebfrontCore.Controllers
|
||||
IPAddress = intIP
|
||||
};
|
||||
#else
|
||||
var origin = (await IW4MAdmin.ApplicationManager.GetInstance().GetClientService().GetUnique(0)).AsPlayer();
|
||||
var origin = (await Manager.GetClientService().GetUnique(0)).AsPlayer();
|
||||
#endif
|
||||
|
||||
var server = IW4MAdmin.ApplicationManager.GetInstance().Servers.First(s => s.GetHashCode() == serverId);
|
||||
var server = Manager.Servers.First(s => s.GetHashCode() == serverId);
|
||||
origin.CurrentServer = server;
|
||||
var remoteEvent = new Event(Event.GType.Say, command, origin, null, server);
|
||||
|
||||
|
@ -8,7 +8,7 @@ using SharedLibrary.Dtos;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
public class HomeController : BaseController
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
|
@ -9,9 +9,9 @@ using WebfrontCore.ViewComponents;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class PenaltyController : Controller
|
||||
public class PenaltyController : BaseController
|
||||
{
|
||||
public IActionResult List()
|
||||
public IActionResult List()
|
||||
{
|
||||
ViewBag.Title = "Penalty List";
|
||||
return View();
|
||||
|
@ -7,15 +7,14 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace WebfrontCore.Controllers
|
||||
{
|
||||
public class ServerController : Controller
|
||||
public class ServerController : BaseController
|
||||
{
|
||||
|
||||
[HttpGet]
|
||||
[ResponseCache(NoStore = true, Duration = 0)]
|
||||
public IActionResult ClientActivity(int id)
|
||||
{
|
||||
|
||||
var s = IW4MAdmin.Program.ServerManager.GetServers().FirstOrDefault(s2 => s2.GetHashCode() == id);
|
||||
var s = Manager.GetServers().FirstOrDefault(s2 => s2.GetHashCode() == id);
|
||||
if (s == null)
|
||||
return View("Error", "Invalid server!");
|
||||
|
||||
|
Reference in New Issue
Block a user