fix accidental improper name for login ClientId

added label field to InputInfo
added logout button
revert graph color
This commit is contained in:
RaidMax 2018-04-05 17:50:04 -05:00
parent 6d8d021b16
commit b6f490be9c
7 changed files with 34 additions and 21 deletions

View File

@ -9,16 +9,16 @@ namespace WebfrontCore.Controllers
public class AccountController : BaseController
{
[HttpGet]
public async Task<IActionResult> Login(int userId, string password)
public async Task<IActionResult> LoginAsync(int clientId, string password)
{
if (userId == 0 || string.IsNullOrEmpty(password))
if (clientId == 0 || string.IsNullOrEmpty(password))
{
return Unauthorized();
}
try
{
var client = IW4MAdmin.Program.ServerManager.PrivilegedClients[userId];
var client = IW4MAdmin.Program.ServerManager.PrivilegedClients[clientId];
string[] hashedPassword = await Task.FromResult(SharedLibrary.Helpers.Hashing.Hash(password, client.PasswordSalt));
if (hashedPassword[0] == client.Password)
@ -51,5 +51,12 @@ namespace WebfrontCore.Controllers
return Unauthorized();
}
[HttpGet]
public async Task<IActionResult> LogoutAsync()
{
await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return RedirectToAction("Index", "Home");
}
}
}

View File

@ -82,23 +82,25 @@ namespace WebfrontCore.Controllers
{
new InputInfo()
{
Name = "User ID"
Name = "clientId",
Label = "Client ID"
},
new InputInfo()
{
Name = "Password",
Label ="Password",
Type = "password",
}
},
Action = "Login"
Action = "LoginAsync"
};
return View("_ActionForm", login);
}
public IActionResult Login(int userId, string password)
public async Task<IActionResult> LoginAsync(int clientId, string password)
{
return RedirectToAction("Login", "Account", new { userId, password });
return await Task.FromResult(RedirectToAction("LoginAsync", "Account", new { clientId, password }));
}
}
}

View File

@ -8,6 +8,7 @@ namespace WebfrontCore.ViewModels
public class InputInfo
{
public string Name { get; set; }
public string Label { get; set; }
public string Placeholder { get; set; }
public string Type { get; set; }
public string Value { get; set; }

View File

@ -8,7 +8,7 @@
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-@input.Name">@input.Name</span>
<span class="input-group-text" id="basic-addon-@input.Name">@input.Label</span>
</div>
@{
string inputType = input.Type ?? "text";

View File

@ -6,10 +6,10 @@
<div id="console_command_response" class="bg-dark p-3">
</div>
<div class="form-row">
<div class="col-12 col-sm-9 pr-1 pr-md-0">
<div class="col-12 col-sm-9 pr-1 pr-sm-0">
<input id="console_command_value" class="form-control m-0 bg-dark text-light" type="text" />
</div>
<div class="col pl-1 pl-md-0">
<div class="col pl-1 pl-sm-0">
<button id="console_command_button" class="btn btn-primary btn-block m-0">Execute</button>
</div>
</div>

View File

@ -35,17 +35,20 @@
<li class="nav-item text-center text-md-left">@Html.ActionLink("Admins", "PrivilegedAsync", "Client", new { area = "" }, new { @class = "nav-link" })</li>
<li class="nav-item text-center text-md-left">@Html.ActionLink("Console", "Index", "Console", new { area = "" }, new { @class = "nav-link" })</li>
@if (!string.IsNullOrEmpty(ViewBag.DiscordLink))
{
<li class="nav-item text-center text-md-left"><a href="@ViewBag.DiscordLink" class="nav-link" target="_blank">Discord</a></li>
}
{
<li class="nav-item text-center text-md-left"><a href="@ViewBag.DiscordLink" class="nav-link" target="_blank">Discord</a></li>
}
@if (ViewBag.Authorized)
{
<li class="nav-item text-center text-md-left">@Html.ActionLink("", "ProfileAsync", "Client", new { id = ViewBag.User.ClientId }, new { @class = "nav-link oi oi-person oi-fix-navbar w-100", title = "Client Profile" })</li>
}
else
{
<li class="nav-item text-center text-md-left"><a href="#" id="profile_action_login_btn" class="nav-link profile-action oi oi-key oi-fix-navbar w-100" title="Login" data-action="login" aria-hidden="true"></a></li>
}
{
<li class="nav-item text-center text-md-left">@Html.ActionLink("Logout", "LogoutAsync", "Account", new { area = "" }, new { @class = "nav-link" })</li>
<li class="nav-item text-center text-md-left">@Html.ActionLink("", "ProfileAsync", "Client", new { id = ViewBag.User.ClientId }, new { @class = "nav-link oi oi-person oi-fix-navbar w-100", title = "Client Profile" })</li>
}
else
{
<li class="nav-item text-center text-md-left">
<a href="#" id="profile_action_login_btn" class="nav-link profile-action oi oi-key oi-fix-navbar w-100" title="Login" data-action="login" aria-hidden="true"></a>
</li>
}
</ul>
<form class="form-inline text-primary pt-3 pb-3" method="get" action="/Client/FindAsync">
<input id="client_search" name="clientName" class="form-control mr-auto ml-auto mr-md-2" type="text" placeholder="Find Player" />

View File

@ -53,7 +53,7 @@ var charts = {};
$('.server-history-row').each(function (index, element) {
let clientHistory = $(this).data('clienthistory');
let serverId = $(this).data('serverid');
let color = $(this).data('online') === 'True' ? '#007acc' : '#ff6060'
let color = $(this).data('online') === 'True' ? 'rgba(0, 122, 204, 0.432)' : '#ff6060'
let width = $('.server-header').first().width();
let historyChart = getPlayerHistoryChart(clientHistory, serverId, width, color);
historyChart.render();