45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using System.Diagnostics;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Aquila_1.Models;
|
|
using Microsoft.AspNetCore.Identity;
|
|
|
|
namespace Aquila_1.Controllers;
|
|
|
|
public class AccountController : Controller
|
|
{
|
|
private readonly UserManager<ApplicationUser> _userManager;
|
|
private readonly SignInManager<ApplicationUser> _signInManager;
|
|
|
|
public AccountController(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager)
|
|
{
|
|
_userManager = userManager;
|
|
_signInManager = signInManager;
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Login()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> Login(LoginViewModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false);
|
|
if (result.Succeeded)
|
|
{
|
|
var user = await _userManager.FindByEmailAsync(model.Email);
|
|
if (await _userManager.IsInRoleAsync(user, "Admin"))
|
|
{
|
|
return RedirectToAction("AdminDashboard", "Home");
|
|
}
|
|
return RedirectToAction("UserDashboard", "Home");
|
|
}
|
|
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
|
|
}
|
|
return View(model);
|
|
}
|
|
}
|