Exemplo n.º 1
0
        public ActionResult ResetPassword(UserResetPassword urp)
        {
            bool UserResetPassword = Services.UserService.ResetPassword(urp);

            TempData["Success"] = "Data Deleted Successfully!";
            return(RedirectToAction("Index", "User"));
        }
        }         // SetTemplateAndVariables

        private string GetFromDB()
        {
            var oNewPassGenerator = new UserResetPassword(CustomerId);

            oNewPassGenerator.Execute();

            if (!oNewPassGenerator.Success)
            {
                throw new StrategyAlert(
                          this,
                          "Failed to generate a new password for customer " + CustomerId
                          );
            }             // if

            var sp = new InitCreatePasswordTokenByUserID(CustomerId, DB, Log);

            sp.Execute();

            if (sp.Token == Guid.Empty)
            {
                throw new StrategyAlert(
                          this,
                          "Failed to generate a change password token for customer " + CustomerId
                          );
            }             // if

            return(CustomerData.OriginSite + "/Account/CreatePassword?token=" + sp.Token.ToString("N"));
        } // GetFromDB
Exemplo n.º 3
0
        }                                                                               // Name

        protected override void SetTemplateAndVariables()
        {
            var oNewPassGenerator = new UserResetPassword(CustomerId);

            oNewPassGenerator.Execute();

            if (!oNewPassGenerator.Success)
            {
                throw new StrategyAlert(this, "Failed to generate a new password for customer " + CustomerData.Mail);
            }

            TemplateName = "Mandrill - Temporary password";

            var sp = new InitCreatePasswordTokenByUserID(CustomerId, DB, Log);

            sp.Execute();

            if (sp.Token == Guid.Empty)
            {
                throw new StrategyAlert(
                          this,
                          "Failed to generate a change password token for customer " + CustomerId
                          );
            }             // if

            Variables = new Dictionary <string, string> {
                { "FirstName", string.IsNullOrEmpty(CustomerData.FirstName) ? "customer" : CustomerData.FirstName },
                { "Link", CustomerData.OriginSite + "/Account/CreatePassword?token=" + sp.Token.ToString("N") }
            };
        } // SetTemplateAndVariables
Exemplo n.º 4
0
        public bool ResetPassword(UserResetPassword userModel)
        {
            var  body = JsonConvert.SerializeObject(userModel);
            bool UserResetPassword = ServerResponse.Invoke <bool>("api/user/resetPassword?id=" + userModel.Id, body, "Post");

            return(UserResetPassword);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> ResetPassword(UserResetPassword userResetPassword)
        {
            var userId       = new Guid(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
            var responseCode = await _repo.ChangePassword(userId, userResetPassword.OldPassword, userResetPassword.NewPassword);

            return(StatusCode(responseCode));
        }
Exemplo n.º 6
0
        public async Task <string> ResetPassword(string userMail)
        {
            var hasUser = await _dbUser.Get(userMail);

            var retorno = "";

            if (hasUser)
            {
                UserResetPassword resetPassword = new UserResetPassword();
                resetPassword.Email = userMail;
                resetPassword.Token = CreateHash(userMail, CreateSalt());
                _dbResetPassword.Post(resetPassword);

                string subject = "Reset de Senha";
                string body    = " Olá!<br/>Segue abaixo link para troca de senha conforme solicitado: https://lalalala/" + resetPassword.Token;

                try
                {
                    _smtpInfra.SendMail(userMail, subject, body);
                }
                catch (Exception e)
                {
                    return("Houve um erro ao enviar o e-mail...");
                }

                return("Solicitação de troca de senha enviada para o e - mail informado");
            }
            else
            {
                retorno = "E-mail não localizado no cadastro!";
            }

            return(retorno);
        }
Exemplo n.º 7
0
        public void ChangePassword(UserResetPassword model, int Userid, int OrganizationId)
        {
            User user = base.GetByID(Userid);

            user.Password = AES.Encrypt(model.Password);
            Update(user);
            StringBuilder emailBody = new StringBuilder(System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/HtmlTemplates/ChangePasswordEmailTemplate.html")));

            emailBody.Replace("$$UserName$$", user.UserName).Replace("$$Password$$", model.Password);
            new EmailManagement().SendMailToUserWithCCANdAttachment(emailBody.ToString(), "Change Password", null, user.EmailID, null, new List <byte[]>(), new List <string>());
        }
Exemplo n.º 8
0
        public void ResetPassword(string userName, string url)
        {
            UserResetPassword resetPass = new UserResetPassword(userName);

            using (_uow)
            {
                _userResetPasswordRepository.Insert(resetPass);
                _uow.Commit();
            }

            _emailService.NotifyResetPassword(userName, resetPass.RequestToken, url);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Function to convert a Client UserResetPassword to DAL Users
 /// </summary>
 /// <param name="userResetPassword">UserResetPassword</param>
 /// <returns>DAL Users</returns>
 public static DAL.Entities.Users ToDal(this UserResetPassword userResetPassword)
 {
     if (userResetPassword == null)
     {
         return(null);
     }
     return(new DAL.Entities.Users
     {
         Email = userResetPassword.Email,
         Password = userResetPassword.Password,
         Id = userResetPassword.Id
     });
 }
Exemplo n.º 10
0
 public IHttpActionResult ResetPassword(UserResetPassword data)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         _userService.ResetPassword(data.UserName, data.Password);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public ActionResult ResetPassword(UserResetPassword model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                var userId = Session["UserId"].ToString();
                var code   = UserManager.GeneratePasswordResetToken(userId);
                var user   = UserManager.FindById(userId);
                if (user == null)
                {
                    // Don't reveal that the user does not exist
                    return(RedirectToAction("ResetPasswordConfirmation", "Acoount"));
                }
                var result = UserManager.ResetPassword(user.Id, code, model.Password);
                if (result.Succeeded)
                {
                    if (Session["AdminFirstTimeLogin"] != null && Session["AdminFirstTimeLogin"].ToString() != "true")
                    {
                        var userDetail = _userDetailRepository.GetUserDetailUserId(userId);
                        if (userDetail != null)
                        {
                            userDetail.IsFirstTimeLogin = true;
                            _userDetailRepository.UpdateUserDetail(userDetail);
                        }
                    }
                    _userDetailRepository.UpdateUserPassword(user.Id);
                    AuthenticationManager.SignOut();
                    return(RedirectToAction("ResetPasswordConfirmation", "Account"));
                }
                AddErrors(result);
                foreach (var error in result.Errors)
                {
                    ViewBag.Message = error;
                    ModelState.AddModelError("", error);
                }

                return(View());
            }
            catch (Exception ex)
            {
                _errorLog.LogException(ex);
                throw;
            }
        }
Exemplo n.º 12
0
        public async Task <IActionResult> ResetPassword([FromBody] UserResetPassword model)
        {
            var user = await _repository.FindUserById(model.Id);

            var results = false;

            if (user != null)
            {
                results = await _repository.ResetPassword(user, model.Code, model.Password) == IdentityResult.Success;

                if (results)
                {
                    return(Json(new { result = results, message = "The password has been resetted successful." }));
                }
            }

            return(Json(new { result = results, message = "The password cannot reset, invalid user!" }));
        }
Exemplo n.º 13
0
 public ActionResult UserResetPassword(UserResetPassword model)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(View(model));
         }
         var userId = Session["UserId"].ToString();
         var code   = UserManager.GeneratePasswordResetToken(userId);
         var user   = UserManager.FindById(userId);
         if (user == null)
         {
             // Don't reveal that the user does not exist
             return(RedirectToAction("ResetPasswordConfirmation", "Login"));
         }
         var result = UserManager.ResetPassword(user.Id, code, model.Password);
         if (result.Succeeded)
         {
             if (Convert.ToBoolean(Session["FirstTimeLogin"]))
             {
                 var userDetail = _userDataRepository.FirstOrDefault(x => x.UserId == userId);
                 if (userDetail != null)
                 {
                     userDetail.IsFirstTimeLogin = true;
                     userDetail.ModifiedDateTime = DateTime.UtcNow;
                     _userDataRepository.Update(userDetail);
                     _userDataRepository.SaveChanges();
                 }
             }
             _userDetailRepository.UpdateUserPassword(user.Id);
             AuthenticationManager.SignOut();
             return(RedirectToAction("ResetPasswordConfirmation", "Login"));
         }
         AddErrors(result);
         ViewBag.Message = "Invalid Tocken";
         return(View());
     }
     catch (Exception ex)
     {
         _errorLog.LogException(ex);
         throw;
     }
 }
        public async Task <bool> ResetPassword(UserResetPassword model)
        {
            var user = await _userManager.FindByIdAsync(model.Id.ToString());

            if (user == null)
            {
                return(false);
            }
            try
            {
                var result = await _userManager.ResetPasswordAsync(user, model.Code.Replace(" ", "+"), model.Password);

                return(result.Succeeded);
            }
            catch (Exception)
            {
                throw new Exception("Không thể khôi phục mật khẩu");
            }
        }
Exemplo n.º 15
0
        public ActionResult ResetPassword(int id, UserResetPassword form)
        {
            var user = Database.Session.Load <User>(id);

            if (user == null)
            {
                return(HttpNotFound());
            }

            form.Username = user.Username;

            if (!ModelState.IsValid)
            {
                return(View(form));
            }

            user.SetPassword(form.Password);
            Database.Session.Update(user);

            return(RedirectToAction("index"));
        }
Exemplo n.º 16
0
        public async Task <IActionResult> ResetPassword([FromRoute] string id, [FromBody] UserResetPassword user)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                throw new Exception(Contants.UNVALID);
            }
            var objDB = userService.UserExistById(id, _context);

            if (objDB == null)
            {
                throw new Exception(Contants.NOTFOUND);
            }
            objDB.Password = user.Password;
            await userService.Update(objDB, _context);

            return(NoContent());
        }
Exemplo n.º 17
0
        public async Task <ActionResult> ResetPassword(UserResetPassword form, string action)
        {
            if (action == "Reset")
            {
                if (!ModelState.IsValid)
                {
                    return(View(form));
                }
                var user = await _userManager.FindByEmailAsync(form.Email);

                if (user == null)
                {
                    // Don't reveal that the user does not exist
                    ModelState.AddModelError("", "User to reset password not found!");
                    return(View());
                }

                string code = await _userManager.GeneratePasswordResetTokenAsync(user);

                var result = await _userManager.ResetPasswordAsync(user, code, form.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("index", "user"));
                }
                else
                {
                    ModelState.AddModelError("", "Reset Password failed: ");
                }
            }
            else
            {
                return(RedirectToAction("index", "user"));
            }

            return(View());
        }
Exemplo n.º 18
0
        /// <summary>
        /// Request reset password token
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public async Task <ApiOkResult> ResetPasswordRequest(string email)
        {
            var user = await _appUserManager.FindByEmailAsync(email);

            if (user == null)
            {
                throw new EntityNotFoundException(email, typeof(AppUser));
            }

            var token = UserInviteCodeGenerator.Generate();

            var entity = new UserResetPassword
            {
                Code   = token,
                UserId = user.Id
            };

            entity = await _userResetPasswordRepository.Insert(entity);

            var model = new ResetPasswordModel
            {
                Email     = user.Email,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Token     = token,
                Url       = _urlRedirectSettings.ResetPasswordWithToken(user.Email, token)
            };

            var mailBody = await _templateParser.Render(EmailTemplateCollection.USER_RESET_PASSWORD, model);

            var to = user.Email;

            await _emailSendTaskRepository.InsertEmail(to, "Reset password", mailBody, Infrastructure.Entities.Tasks.EmailTaskBot.MadRatBot);

            return(new ApiOkResult(true));
        }
 public async Task <string> Post(UserResetPassword userEmail)
 {
     return(await _service.ResetPassword(userEmail.Email));
 }
Exemplo n.º 20
0
        public JsonResult ResetPassword(RegisterViewModel request)
        {
            request.Password = request.Password ?? "";
            var requiredFields = new List <Tuple <string, string, DataType> >
            {
                Tuple.Create("username", request.RegNumber, DataType.Default),
            };

            var validUserInputs = _validateService.Validate(requiredFields);

            if (!validUserInputs.Valid)
            {
                return(Json(new ReturnData <string>
                {
                    Message = validUserInputs.Errors,
                    Success = validUserInputs.Valid
                }));
            }

            try
            {
                var registeredUser = _context.Users.FirstOrDefault(u => (u.UserName.ToUpper().Equals(request.RegNumber.ToUpper())) || (u.Code.ToString() == request.RegNumber) || (u.Id.ToString() == request.RegNumber));
                if (registeredUser == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Username not found"
                    }));
                }

                if (string.IsNullOrEmpty(registeredUser.UserName))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Username not found"
                    }));
                }

                registeredUser.PasswordHash = registeredUser.PasswordHash ?? "";
                var hashedNewPassword = SecurePasswordHasher.Hash(request.Password);
                if (hashedNewPassword.ToUpper().Equals(registeredUser.PasswordHash.ToUpper()))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Kindly use a different password from the previous"
                    }));
                }

                var userResetPassword = new UserResetPassword();

                if ((request.Role == Role.Admin) || (request.Role == Role.All))
                {
                    userResetPassword             = _context.UserResetPasswords.FirstOrDefault(u => u.UserId == registeredUser.Id && u.Status == false);
                    registeredUser.PasswordHash   = SecurePasswordHasher.Hash(request.Password);
                    registeredUser.EmailConfirmed = true;
                    registeredUser.Status         = true;
                    if (userResetPassword != null)
                    {
                        userResetPassword.Status = true;
                        _context.Update(userResetPassword);
                    }

                    _context.Update(registeredUser);
                    _context.SaveChanges();

                    return(Json(new ReturnData <string>
                    {
                        Success = true,
                        Message = "Password reset successful"
                    }));
                }

                userResetPassword = new UserResetPassword
                {
                    UserId      = registeredUser.Id,
                    ResetCode   = Guid.NewGuid().ToString(),
                    DateCreated = DateTime.Now,
                    Status      = false
                };
                var success = false;

                var userGroup = _context.UserGroups.FirstOrDefault(u => u.Id == registeredUser.UserGroupsId);

                mailMethod = MailSendMethod.PasswordReset;
                var subject = "Reset Account Password";
                if (userGroup?.Role == Role.Student)
                {
                    var classStatus  = _context.Settings.FirstOrDefault()?.ClassStatus;
                    var result       = _unisolApiProxy.CheckStudentExists(request.RegNumber, classStatus).Result;
                    var jdata        = new ProcessJsonReturnResults <UserDetails>(result).UnisolApiData;
                    var emailContent = new MailsViewModel {
                        UserCode   = request.RegNumber,
                        Firstname  = jdata.Data.Names,
                        Code       = userResetPassword.ResetCode,
                        Email      = registeredUser.Email,
                        MailMethod = mailMethod,
                        PortalUrl  = request.PortalUrl,
                        Subject    = subject
                    };
                    success = emailSender.SendEmail(emailContent);
                }
                if (userGroup?.Role == Role.Staff)
                {
                    var result       = _unisolApiProxy.CheckEmployeeExists(request.RegNumber).Result;
                    var jdata        = JsonConvert.DeserializeObject <ReturnData <HrpEmployee> >(result);
                    var emailContent = new MailsViewModel
                    {
                        UserCode   = request.RegNumber,
                        Firstname  = jdata.Data.Names,
                        PortalUrl  = request.PortalUrl,
                        Code       = userResetPassword.ResetCode,
                        Email      = registeredUser.Email,
                        MailMethod = mailMethod,
                        Subject    = subject
                    };
                    success = emailSender.SendEmail(emailContent);
                }

                if (success)
                {
                    registeredUser.Code = userResetPassword.ResetCode;
                    _context.SaveChanges();

                    var email = registeredUser.Email.Split('@');
                    return(Json(new ReturnData <bool>
                    {
                        Success = true,
                        Message = $"We have sent a link to reset your password, please check your email ({email[0].Substring(0, 1)}*****{email[0].Substring(email[0].Length - 2)}@{email[1]})."
                    }));
                }
                return(Json(new ReturnData <bool>
                {
                    Success = false,
                    Message = "There was a problem while trying reset your password, please contact admin"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Something went wrong, please try again after sometime.",
                    Error = new Error(ex)
                }));
            }
        }
Exemplo n.º 21
0
 /// <summary>
 /// Function to reset password
 /// </summary>
 /// <param name="userResetPassword">UserResetPassword</param>
 /// <returns>bool:true if success</returns>
 public bool ResetPaswword(UserResetPassword userResetPassword)
 {
     return(Repository.ResetPassword(userResetPassword.ToDal()));
 }
 public void Insert(UserResetPassword resetData)
 {
     _databaseContext.UserResetPasswords.Add(resetData);
 }
Exemplo n.º 23
0
 public ActionResult <OperateResult <Auth_User> > ResetPwd([FromBody] UserResetPassword param)
 {
     return(Json(_service.ResetPassword(param)));
 }
Exemplo n.º 24
0
 public string ChangePassword(UserResetPassword model)
 {
     this._IUserRepository.ChangePassword(model, base.UserId, base.OrganizationId);
     return("done");
 }