config-upload-poc/Controllers/AccountController.cs
alisha-nayeem 8c0afa1cc3 Aquila
2024-12-20 15:21:31 +05:30

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);
}
}