Esempio n. 1
0
        public ActionResult ChangePassword(UserDTO user, string guid)
        {
            if (guid != null && guid != "")
            {
                PasswordResetTokenDTO prt = passwordResetTokenLogic.Get(guid);
                UserDTO _user             = utilisateurLogic.Get(prt.User_id);
                if (user.Password == user.confirmPassword)
                {
                    _user.Password        = user.Password;
                    _user.confirmPassword = user.confirmPassword;
                    UpdatePassword(_user);
                    passwordResetTokenLogic.Delete(prt);
                    mailLogic.SendPasswordChangedMail(_user.Email);
                    ViewBag.Message = "Votre mot de passe à correctement été modifié, veuillez vous identifier pour accéder à l'application.";
                    ViewBag.Status  = true;
                }
            }
            else
            {
                ViewBag.Message = "Il y a eu une erreur";
                ViewBag.Status  = false;
            }

            return(View());
        }
Esempio n. 2
0
 public void Insert(PasswordResetTokenDTO passwordResetTokenDTO)
 {
     using (CarRentalEntities contexte = new CarRentalEntities())
     {
         contexte.usp_PasswordResetToken_Insert(passwordResetTokenDTO.Token, passwordResetTokenDTO.Expiry_date, passwordResetTokenDTO.User_id);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Methode qui génère un token de changement de mot de passe et qui l'insère en base de données.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public PasswordResetTokenDTO GeneratePasswordResetToken(UserDTO user)
        {
            //Générer le token
            PasswordResetTokenDTO passwordResetTokenDTO = new PasswordResetTokenDTO(user.Id);

            // Sauvegarder le token en base
            passwordResetTokenLogic.Insert(passwordResetTokenDTO);
            return(passwordResetTokenDTO);
        }
Esempio n. 4
0
        public void SendNewAccountLinkEmail(string emailTarget, PasswordResetTokenDTO passwordResetTokenDTO, string uri, string pathAndQuery)
        {
            var    verifyUrl = "/Account/ChangePassword/" + passwordResetTokenDTO.Token;
            var    link      = uri.Replace(pathAndQuery, verifyUrl);
            string subject   = "Bienvenue sur CarRental";
            string body      = "Bonjour,<br><br> Vous venez d'obtenir l'accès à l'application CarRental, veuillez cliquez sur ce <a href='" + link + "'>lien</a> afin de définir votre mot de passe.<br/>" +
                               "Ce lien a une durée de validité de 2 heures, passé ce délai vous devrez effectuer une demande manuelle de changement de mot passe <br> <br> Bonne journée, <br> CarRental";

            SendEMail(emailTarget, subject, body);
        }
Esempio n. 5
0
        public void SendPasswordResetLinkEmail(string emailTarget, PasswordResetTokenDTO passwordResetTokenDTO, string uri, string pathAndQuery)
        {
            var    verifyUrl = "/Account/ChangePassword/" + passwordResetTokenDTO.Token;
            var    link      = uri.Replace(pathAndQuery, verifyUrl);
            string subject   = "Demande de changement de mot de passe";
            string body      = "Bonjour,<br> Veuillez cliquer sur ce <a href='" + link + "'>lien</a> pour changer votre mot de passe.<br/>" +
                               "Ce lien a une durée de validité de 2 heures, passé ce délai vous devrez réitérer votre demande. <br> <br> Bonne journée, <br> CarRental";

            SendEMail(emailTarget, subject, body);
        }
Esempio n. 6
0
        public ActionResult EditPassword()
        {
            int idCurrentUser = (int)Session["userId"];
            PasswordResetTokenDTO passwordResetTokenDTO = new PasswordResetTokenDTO(idCurrentUser);

            passwordResetTokenLogic.Insert(passwordResetTokenDTO);
            FormsAuthentication.SignOut();
            Session.Abandon();
            return(RedirectToAction("ChangePassword", "Account", new { id = passwordResetTokenDTO.Token }));
        }
Esempio n. 7
0
 public void Delete(PasswordResetTokenDTO passwordResetTokenDTO)
 {
     if (passwordResetTokenDTO.Id == 0)
     {
         throw new NullReferenceException();
     }
     else
     {
         passwordResetTokenEngine.Delete(passwordResetTokenDTO.Id);
     }
 }
Esempio n. 8
0
        public ActionResult ChangePassword(string id)
        {
            // Variable qui me permet de déterminer si je dois afficher une erreur true = erreur
            bool status = true;
            // Variable qui me permet d'afficher le message de mon erreur
            string message;

            if (id != null && id != "")
            {
                PasswordResetTokenDTO passwordResetTokenDTO = passwordResetTokenLogic.Get(id);
                if (passwordResetTokenDTO == null)
                {
                    // Si le token n'existe pas
                    message = "Lien invalide";
                }
                else if (passwordResetTokenDTO.Expiry_date.HasValue && DateTime.Compare(passwordResetTokenDTO.Expiry_date.Value, DateTime.Now) < 0)
                {
                    message = " Ce lien est expiré";
                }
                else
                {
                    // Si le code token existe et qu'il est encore valide
                    status = false;
                    UserDTO userDTO = utilisateurLogic.Get(passwordResetTokenDTO.User_id);
                    ViewBag.UserNow = userDTO;
                    ViewBag.Status  = status;
                    return(View("ChangePassword", userDTO));
                }
            }
            else
            {
                // Si il n'y a pas de token
                message = "Lien invalide";
            }
            ViewBag.Message = message;
            ViewBag.Status  = status;
            return(View());
        }
Esempio n. 9
0
 public void Insert(PasswordResetTokenDTO passwordResetTokenDTO)
 {
     passwordResetTokenEngine.Insert(passwordResetTokenDTO);
 }