public async Task <object> ChangePasswordAsync(ChangePasswordRequest request) { var user = await unitOfWork.UserRepository.Find(u => u.Id == long.Parse(request.UserID)); var status = WordPressPasswordUtil.IsValid(request.OldPassword, user.Single().UserPass); if (!status) { //Old Password not matched return(new { Status = false, Message = "Your old Password doesn't match" }); } else { //Change the Password var passwordHash = Crypter.Phpass.Crypt(request.NewPassword); var userDetails = user.Single(); userDetails.UserPass = passwordHash; unitOfWork.UserRepository.Update(userDetails); await unitOfWork.SaveChangesAsync(); return(new { Status = true, Message = "Password updated successfully" }); } }
public async Task <IActionResult> ResendActivationLink(string userID, string email) { const string view = "/Views/ActivateAccount/Index.cshtml"; var ActivationLink = WordPressPasswordUtil.GetActivationLink(Convert.ToString(userID), email); var template = await _renderer.RenderViewToStringAsync <Models.ActivateAccountViewModel>(view, new Models.ActivateAccountViewModel() { URL = ActivationLink });; return(Ok(await accountService.ResendActivationLink(userID, email, template))); }
public async Task <object> ForgotPasswordLink(string email) { var user = await unitOfWork.UserRepository.Find(u => u.UserEmail == email); var temporaryPassword = WordPressPasswordUtil.GetUniqID(); var randomPassword = Crypter.Phpass.Crypt(temporaryPassword); if (user.ToList().Count == 0) { //User Not found return(new { Status = false, Message = "User not exists for the given email address" }); } else { var userDetails = await unitOfWork.UserRepository.Single(u => u.Id == user.Single().Id); userDetails.UserPass = randomPassword; unitOfWork.UserRepository.Update(userDetails); await unitOfWork.SaveChangesAsync(); var ActivationLink = WordPressPasswordUtil.GetForgotPasswordLink(Convert.ToString(user.Single().Id), email, temporaryPassword); EmailHelper emailHelper = new EmailHelper("*****@*****.**", email, "[Grocedy] Password Reset Request for Grocedy", $"Someone has requested a new password for the following account on Grocedy:. {ActivationLink}"); if (emailHelper.SendElastic()) { return(new { Status = true, Message = $"Please check your inbox ,we have sent randomly generated password to your email address {email}." }); } else { return(new { Status = true, Message = "Success , but Failed to sent reset password Link ." }); } } }
public async Task <object> RegisterAsync(Register register) { var users = await unitOfWork.UserRepository.Find(u => u.UserEmail.Equals(register.Email)); if (users.ToList().Count > 0) { return(new { Status = false, Message = "User with given email already exists" }); } else { await unitOfWork.UserRepository.Add(new WpUsers() { DisplayName = $"{register.FirstName} {register.LastName}", UserEmail = register.Email, UserStatus = 1, UserPass = Crypter.Phpass.Crypt(register.Password), UserLogin = register.Email, UserNicename = register.Email.Replace('.', '-'), UserRegistered = DateTime.Now, UserActivationKey = string.Empty, UserUrl = string.Empty }); var user = await unitOfWork.UserRepository.Single(u => u.UserEmail.Equals(register.Email)); var usersMeta = await unitOfWork.UsersMetaRepository.Find(u => u.MetaKey == "wpforms-pending" && u.UserId == user.Id); if (usersMeta.ToList().Count > 0) { var userMeta = usersMeta.Single(); userMeta.MetaValue = "0"; } else { await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "wpforms-pending", MetaValue = "1" }); } await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "first_name", MetaValue = register.FirstName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "last_name", MetaValue = register.LastName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "nickname", MetaValue = user.DisplayName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "billing_first_name", MetaValue = register.FirstName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "billing_last_name", MetaValue = register.LastName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "shipping_first_name", MetaValue = register.FirstName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "shipping_last_name", MetaValue = register.LastName }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "billing_phone", MetaValue = register.PhoneNumber }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "billing_email", MetaValue = register.Email }); await unitOfWork.UsersMetaRepository.Add(new WpUsermeta() { UserId = user.Id, MetaKey = "wpforms-confirmation", MetaValue = "639" }); await unitOfWork.SaveChangesAsync(); //var referalDetails = context.WpUserReferalDetails.Where(r => r.ReferalCode == register.ReferalCode).SingleOrDefault(); //if (referalDetails != null) //{ // context.WpUserreferalsMappings.Add(new WpUserreferalsMappings() { }); //} var ActivationLink = WordPressPasswordUtil.GetActivationLink(Convert.ToString(user.Id), user.UserEmail); //EmailHelper.Send(ActivationLink); EmailHelper email = new EmailHelper("*****@*****.**", register.Email, "[Grocedy] Your username and password info (Activation Required)", $"IMPORTANT: You must activate your account before you can login. Please visit the link below. {ActivationLink}"); if (email.SendElastic()) { return(new { Status = true, Message = "Registration Success", UserID = user.Id, UserDetails = GetUserDetails(Convert.ToString(user.Id), user), }); } else { return(new { Status = true, Message = "Registration Success , but failed to sent Activation Link .", UserID = user.Id, UserDetails = GetUserDetails(Convert.ToString(user.Id), user), }); } } }