3defd3f486
* don't run build commands in release
* fix test file
* Set up CI with Azure Pipelines
[skip ci]
* Include fonts and fix automessage hidden command
* more project changes
* migration from bower to libman
* more lib man changes
* project update for sneaky commands
* add missing canvas.js dep
update projects not to have stupid extra dlls
include in previous
* update pipeline file
* update post publish script and pipeline definition
* fix broken yaml
* move encoding conversion to seperate script
* remove extra uneeded rank icons
remove garbage language files being created
remove frontend lib when done
* fix publish script path
* grab localizations through powershell
* fix broken batch 🤷
* actually fixed
* only include runtime compilation in debug mode for webfront
* don't deploy un minified css
use full jquery version
* add step to download the scss for open iconic
change the font path
* update mkdir for iconic path
* don't include old iconic css
* correct font path for real now
* copy script plugins
* lots of changes for deployment
* build the projects
* use projectdir instead of solution dir
* nerf script commands plugin
fix live radar left over command
* actually kill script command post build
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* fix the font file copy (I think)
* maybe fix delete folder issue
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
75 lines
2.4 KiB
C#
75 lines
2.4 KiB
C#
using Microsoft.AspNetCore.Authentication;
|
|
using Microsoft.AspNetCore.Authentication.Cookies;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using SharedLibraryCore;
|
|
using SharedLibraryCore.Interfaces;
|
|
using System;
|
|
using System.Security.Claims;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace WebfrontCore.Controllers
|
|
{
|
|
public class AccountController : BaseController
|
|
{
|
|
public AccountController(IManager manager) : base(manager)
|
|
{
|
|
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<IActionResult> LoginAsync(int clientId, string password)
|
|
{
|
|
if (clientId == 0 || string.IsNullOrEmpty(password))
|
|
{
|
|
return Unauthorized();
|
|
}
|
|
|
|
try
|
|
{
|
|
var privilegedClient = await Manager.GetClientService().GetClientForLogin(clientId);
|
|
bool loginSuccess = false;
|
|
#if DEBUG
|
|
loginSuccess = clientId == 1;
|
|
#endif
|
|
if (!Authorized && !loginSuccess)
|
|
{
|
|
loginSuccess = Manager.TokenAuthenticator.AuthorizeToken(privilegedClient.NetworkId, password) ||
|
|
(await Task.FromResult(SharedLibraryCore.Helpers.Hashing.Hash(password, privilegedClient.PasswordSalt)))[0] == privilegedClient.Password;
|
|
}
|
|
|
|
if (loginSuccess)
|
|
{
|
|
var claims = new[]
|
|
{
|
|
new Claim(ClaimTypes.NameIdentifier, privilegedClient.Name),
|
|
new Claim(ClaimTypes.Role, privilegedClient.Level.ToString()),
|
|
new Claim(ClaimTypes.Sid, privilegedClient.ClientId.ToString()),
|
|
new Claim(ClaimTypes.PrimarySid, privilegedClient.NetworkId.ToString("X"))
|
|
};
|
|
|
|
var claimsIdentity = new ClaimsIdentity(claims, "login");
|
|
var claimsPrinciple = new ClaimsPrincipal(claimsIdentity);
|
|
await SignInAsync(claimsPrinciple);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
catch (Exception)
|
|
{
|
|
return Unauthorized();
|
|
}
|
|
|
|
return Unauthorized();
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<IActionResult> LogoutAsync()
|
|
{
|
|
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
|
|
return RedirectToAction("Index", "Home");
|
|
}
|
|
}
|
|
}
|