using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using System.Linq; using System.Threading.Tasks; using zero.Core; using zero.Core.Api; using zero.Core.Entities; using zero.Core.Identity; using zero.TestData.Lists; namespace zero.Web.Controllers { //[ZeroAuthorize("tobi")] public class TestController : BackofficeController { private IAuthenticationApi Api { get; set; } private SignInManager SignInManager; public TestController(IZeroConfiguration config, IAuthenticationApi api, SignInManager signInManager) : base(config) { Api = api; SignInManager = signInManager; } [HttpGet] [ZeroAuthorize(false)] public async Task RenderConfig() { SocialContentRenderer renderer = new SocialContentRenderer(); return Json(await renderer.Build()); } [HttpPost] public async Task Login([FromQuery] string username, [FromQuery] string password) { Microsoft.AspNetCore.Identity.SignInResult result = await SignInManager.PasswordSignInAsync(username, password, false, true); return Json(new { username, password, result }); } [ZeroAuthorize] public async Task GetUser() { User user = await SignInManager.UserManager.GetUserAsync(HttpContext.User); return Json(new { user }); } [ZeroAuthorize] public IActionResult GetUserClaims() { return Json(HttpContext.User.Claims.Select(claim => new { claim.Type, claim.Value }).ToArray()); } [HttpPost] public async Task Logout() { await SignInManager.SignOutAsync(); return Json(new { success = true }); } } }