Ejemplo n.º 1
0
        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"
                });
            }
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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 ."
                    });
                }
            }
        }
Ejemplo n.º 4
0
        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),
                    });
                }
            }
        }