Esempio n. 1
0
        private ValidateModelResponse ValidateLoginModel(SignInViewModel posted, bool isCreate)
        {
            ValidateModelResponse resp = new ValidateModelResponse();

            resp.Success = true;

            if (posted == null)
            {
                resp.Success = false;
                return(resp);
            }
            if (!MerchantTribe.Web.Validation.EmailValidation.MeetsEmailFormatRequirements(posted.Email))
            {
                resp.Success = false;
                resp.ResultMessages.Add("Please enter a valid email address");
            }
            if (posted.Password.Trim().Length < WebAppSettings.PasswordMinimumLength)
            {
                resp.Success = false;
                resp.ResultMessages.Add("Password must be at least " + WebAppSettings.PasswordMinimumLength + " characters long.");
            }

            if (isCreate)
            {
                if (posted.PasswordConfirm != posted.Password)
                {
                    resp.Success = false;
                    resp.ResultMessages.Add("Passwords don't match. Please try again.");
                }
            }
            return(resp);
        }
        public ActionResult AjaxSignIn()
        {
            var username = Request.Form["username"] ?? string.Empty;
            var password = Request.Form["password"] ?? string.Empty;

            var    validated    = new ValidateModelResponse();
            var    errorMessage = string.Empty;
            string userId       = null;

            if (HccApp.MembershipServices.LoginUser(username, password, out errorMessage, out userId))
            {
                if (CurrentCart != null)
                {
                    var custAcc = HccApp.MembershipServices.Customers.Find(userId);
                    CurrentCart.UserEmail = custAcc != null?custAcc.Email.Trim() : null;

                    CurrentCart.UserID = userId;
                    HccApp.CalculateOrderAndSave(CurrentCart);
                }

                validated.Success = true;
            }
            else
            {
                validated.ResultMessages.Add(errorMessage);
                validated.Success = false;
            }

            return(new PreJsonResult(Web.Json.ObjectToJson(validated)));
        }
Esempio n. 3
0
        public ActionResult CreateAccount(SignInViewModel posted)
        {
            SignInSetup();
            SignInViewModel model = new SignInViewModel();

            // bail out if this is a private store that doesn't allow registrations
            if (ViewBag.IsPrivateStore)
            {
                return(View("SignIn", model));
            }

            // Process Requrest
            ValidateModelResponse validated = ValidateLoginModel(posted, false);

            if (validated.Success == false)
            {
                foreach (string s in validated.ResultMessages)
                {
                    FlashWarning(s);
                }
            }
            else
            {
                bool result = false;

                CustomerAccount u = new CustomerAccount();

                if (u != null)
                {
                    u.Email = posted.Email.Trim();
                    CreateUserStatus s = CreateUserStatus.None;
                    // Create new user
                    result = MTApp.MembershipServices.CreateCustomer(u, ref s, posted.Password.Trim());

                    if (result == false)
                    {
                        switch (s)
                        {
                        case CreateUserStatus.DuplicateUsername:
                            FlashWarning("That email already exists. Select another email or login to your current account.");
                            break;

                        default:
                            FlashWarning("Unable to save user. Unknown error.");
                            break;
                        }
                    }
                    else
                    {
                        // Update bvin field so that next save will call updated instead of create
                        MerchantTribe.Web.Cookies.SetCookieString(MerchantTribe.Commerce.WebAppSettings.CookieNameAuthenticationTokenCustomer(MTApp.CurrentStore.Id),
                                                                  u.Bvin,
                                                                  this.Request.RequestContext.HttpContext, false, new EventLog());
                        Redirect("~/account");
                    }
                }
            }
            return(View("SignIn", model));
        }
Esempio n. 4
0
        public ActionResult AjaxSignIn()
        {
            string email    = Request.Form["email"] ?? string.Empty;
            string password = Request.Form["password"] ?? string.Empty;

            SignInViewModel posted = new SignInViewModel()
            {
                Email    = email,
                Password = password
            };

            ValidateModelResponse validated = ValidateLoginModel(posted, false);

            if (validated.Success)
            {
                string errorMessage = string.Empty;
                string userId       = string.Empty;
                if (MTApp.MembershipServices.LoginCustomer(posted.Email.Trim(),
                                                           posted.Password.Trim(),
                                                           ref errorMessage,
                                                           this.Request.RequestContext.HttpContext,
                                                           ref userId, MTApp))
                {
                    MerchantTribe.Commerce.Orders.Order cart = SessionManager.CurrentShoppingCart(MTApp.OrderServices, MTApp.CurrentStore);
                    if (cart != null && !string.IsNullOrEmpty(cart.bvin))
                    {
                        cart.UserEmail = posted.Email.Trim();
                        cart.UserID    = userId;
                        MTApp.CalculateOrderAndSave(cart);
                        SessionManager.SaveOrderCookies(cart, MTApp.CurrentStore);
                    }
                    validated.Success = true;
                }
                else
                {
                    validated.ResultMessages.Add(errorMessage);
                    validated.Success = false;
                }
            }

            return(new PreJsonResult(MerchantTribe.Web.Json.ObjectToJson(validated)));
        }
Esempio n. 5
0
        public ActionResult SignInPost(SignInViewModel posted)
        {
            SignInSetup();

            if (Request.QueryString["mode"] != null)
            {
                posted.Mode = Request.QueryString["mode"];
            }

            ValidateModelResponse validated = ValidateLoginModel(posted, false);

            if (validated.Success == false)
            {
                foreach (string s in validated.ResultMessages)
                {
                    FlashWarning(s);
                }
            }
            else
            {
                string errorMessage = string.Empty;
                string userId       = string.Empty;
                if (MTApp.MembershipServices.LoginCustomer(posted.Email.Trim(),
                                                           posted.Password.Trim(),
                                                           ref errorMessage,
                                                           this.Request.RequestContext.HttpContext,
                                                           ref userId, MTApp))
                {
                    MerchantTribe.Commerce.Orders.Order cart = SessionManager.CurrentShoppingCart(MTApp.OrderServices, MTApp.CurrentStore);
                    if (cart != null && !string.IsNullOrEmpty(cart.bvin))
                    {
                        cart.UserEmail = posted.Email.Trim();
                        cart.UserID    = userId;
                        MTApp.CalculateOrderAndSave(cart);
                        SessionManager.SaveOrderCookies(cart, MTApp.CurrentStore);
                    }

                    // if we got here from checkout, return to checkout
                    if (posted.Mode.Trim().ToLowerInvariant() == "checkout")
                    {
                        return(Redirect("~/checkout"));
                    }
                    // otherwise send to account home
                    return(Redirect("~/account"));
                }
                else
                {
                    string errorMessage2 = string.Empty;
                    // Failed to Login as Customer, Try admin account
                    if (MTApp.AccountServices.LoginAdminUser(posted.Email.Trim(),
                                                             posted.Password.Trim(),
                                                             ref errorMessage2,
                                                             this.Request.RequestContext.HttpContext,
                                                             MTApp))
                    {
                        return(Redirect("~/bvadmin"));
                    }
                    this.FlashWarning(errorMessage);
                }
            }

            return(View(posted));
        }
        private ValidateModelResponse ValidateLoginModel(SignInViewModel posted, bool isCreate)
        {
            ValidateModelResponse resp = new ValidateModelResponse();
            resp.Success = true;
            
            if (posted == null) 
            {
                resp.Success = false;
                return resp;
            }
            if (!MerchantTribe.Web.Validation.EmailValidation.MeetsEmailFormatRequirements(posted.Email))
            {
                resp.Success = false;
                resp.ResultMessages.Add("Please enter a valid email address");
            }
            if (posted.Password.Trim().Length < WebAppSettings.PasswordMinimumLength)
            {
                resp.Success = false;
                resp.ResultMessages.Add("Password must be at least " + WebAppSettings.PasswordMinimumLength + " characters long.");
            }

            if (isCreate)
            {
                if (posted.PasswordConfirm != posted.Password)
                {
                    resp.Success = false;
                    resp.ResultMessages.Add("Passwords don't match. Please try again.");
                }
            }
            return resp;
        }