public async Task <ActionResult <User> > ActiveAccount(string code) { var codeBasic = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code)); var email = codeBasic.Split("*")[0]; var user = await _context.Users.SingleOrDefaultAsync(e => e.Email == email); if (user.CodeOfVerification != codeBasic) { return(Ok(new { message = "code incorrect", code = -1 })); } user.EmailVerified = true; try { await _context.SaveChangesAsync(); var claims = new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Role, user.IdRole.ToString()), }; if (user.IsActive == false) { return(Ok(new { message = "Veuillez patienter que votre compte soit active par l'administration", code = -2 })); } return(Ok(new { code = 1, user, token = _tokkenHandler.GenerateTokken(claims) })); } catch (DbUpdateConcurrencyException ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task <ActionResult <User> > LogIn(UserDTO model) { if (string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.Password)) { return(Ok(new { message = "Login ou Mot sont vide", code = -4 })); } var user = await _context.Users.Where(x => x.Email == model.Email) // .Include(e => e.Fonction) // .Include(e => e.Service) .FirstOrDefaultAsync() ; // check if Nom exists if (user == null) { return(Ok(new { message = "Login érroné, vous pouvez utiliser l'option de réinitialisation de mot de passe.", code = -3 })); } if (user.Password == model.Password) { // remove password before returning user.Password = ""; // if (user.EmailVerified == false) // { // return Ok(new { message = "Veuillez consulter votre boite email pour activer votre compte.", code = -1 }); // } // if (user.IsActive == false) // { // return Ok(new { message = "Veuillez patienter que votre compte soit active par l'administration", code = -2 }); // } var claims = new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Role, user.Profil.ToString()), }; return(Ok(new { code = 1, user, token = _tokkenHandler.GenerateTokken(claims), message = "connexion réussite" })); } return(Ok(new { message = "Mot de passe érroné, vous pouvez utiliser l'option de réinitialisation de mot de passe.", code = -1 })); }
public async Task <ActionResult <User> > LogIn(UserDTO model) { if (string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.Password)) { return(Ok(new { message = "Login ou Mot sont vide", code = -4 })); } var user = await _context.Users.SingleOrDefaultAsync(x => x.Email == model.Email); if (user == null) { return(Ok(new { message = "Login érroné, vous pouvez utiliser l'option de réinitialisation de mot de passe.", code = -3 })); } if (user.Password != model.Password) { return(Ok(new { message = "Mot de passe érroné, vous pouvez utiliser l'option de réinitialisation de mot de passe.", code = -1 })); } // remove password before returning user.Password = ""; // await _context.Entry(model).Reference(e => e.Role).LoadAsync(); object child = null; NiveauScolaire niveau = null; Branche branche = null; if (user.Role == "student") { child = await _context.Students.Where(e => e.IdUser == user.Id).FirstOrDefaultAsync() as Student; if (child != null) { niveau = await _context.NiveauScolaires.Where(e => e.Id == ((Student)child).Niveau).FirstOrDefaultAsync(); if (((Student)child).Branche != 0) { branche = await _context.Branches.Where(e => e.Id == ((Student)child).Branche).FirstOrDefaultAsync(); } } } else { child = await _context.Profs.Where(e => e.IdUser == user.Id).FirstOrDefaultAsync() as Prof; } if (user.IsActive == false) { return(Ok(new { message = "Veuillez patienter que votre compte soit active par l'administration", code = -2 })); } var claims = new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()), new Claim(ClaimTypes.Email, user.Email), // new Claim(ClaimTypes.Role, user.Role.ToString()), }; return(Ok(new { code = 1, child, niveau, branche, user, token = _tokkenHandler.GenerateTokken(claims), message = "connexion réussite" })); }