58 lines
1.2 KiB
C#
58 lines
1.2 KiB
C#
using HackerNet.Web.Models;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace HackerNet.Web.Controllers;
|
|
|
|
public class AccountController : HackerController
|
|
{
|
|
private readonly UserManager<IdentityUser> _userManager;
|
|
|
|
public AccountController(UserManager<IdentityUser> userManager)
|
|
{
|
|
_userManager = userManager;
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Signup()
|
|
{
|
|
return View(new SignupLoginViewModel());
|
|
}
|
|
|
|
[HttpPost]
|
|
[ValidateAntiForgeryToken]
|
|
public async Task<IActionResult> Signup(SignupLoginViewModel cmd)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return View(cmd);
|
|
}
|
|
|
|
var user = new IdentityUser(cmd.Username);
|
|
var result = await _userManager.CreateAsync(user, cmd.Password);
|
|
|
|
if (!result.Succeeded)
|
|
{
|
|
ModelState
|
|
.AddModelError(nameof(SignupLoginViewModel.Username), "Impossible de créer le compte");
|
|
return View(cmd);
|
|
}
|
|
|
|
SetFlashMessage("Votre compte a été créé !");
|
|
|
|
return RedirectToAction("Index", "Links");
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Login()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ValidateAntiForgeryToken]
|
|
public IActionResult Login(SignupLoginViewModel cmd)
|
|
{
|
|
return View();
|
|
}
|
|
} |