using IUT_ISTAG.Models; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; namespace IUT_ISTAG.Controllers { public class LoginController : Controller { private readonly SignInManager _signInManager; private readonly UserManager _userManager; public LoginController( SignInManager signInManager, UserManager userManager) { _signInManager = signInManager; _userManager = userManager; } [HttpGet] public IActionResult Login() { return View("~/Views/Login/Login.cshtml"); //return View(); } [HttpGet] public async Task LoggoutAsync() { await _signInManager.SignOutAsync(); return RedirectToRoute("Index"); //return View(); } [HttpPost] public async Task LoginAsync(String email, String password) { if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password)) { ViewBag.error = "Veuillez remplir tous les champs"; return View("~/Views/Login/Login.cshtml"); } else { var user = await _userManager.FindByEmailAsync(email); if (user == null) { ViewBag.error = "Compte introuvable"; return View("~/Views/Login/Login.cshtml"); } if (user.is_actif == false) { ViewBag.error = "Compte Désactivé"; return View("~/Views/Login/Login.cshtml"); } var result = await _signInManager.PasswordSignInAsync( user.UserName, password, false, true ); if (result.Succeeded) { var roles = await _userManager.GetRolesAsync(user); foreach (var role in roles) { Console.WriteLine("ROLE : " + role); } if (roles.Contains("Super_Admin")) { return RedirectToAction("dashboard", "DashboardSuperAdmin"); }else if (roles.Contains("Etudiant")) { return RedirectToAction("Index", "DashboardEdutiant"); } else { return RedirectToAction("Index", "dashboardEnseignant"); } } /* if (result.IsLockedOut) { ViewBag.error = "Compte bloqué"; return View(); } */ ViewBag.error = "Mot de passe incorrect"; return View("~/Views/Login/Login.cshtml"); } } } }