public virtual async Task <IHttpActionResult> ResetPasswordAsync(ResetPasswordRequest resetPasswordRequest)
        {
            if (resetPasswordRequest == null)
            {
                return(BadRequest("No body found in the request"));
            }

            var returnUrl = resetPasswordRequest.ReturnUrl;

            if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl))
            {
                returnUrl = MyAccountUrlProvider.GetLoginUrl(new BaseUrlParameter
                {
                    CultureInfo = ComposerContext.CultureInfo
                });
            }

            var ticket = HttpUtility.UrlDecode(resetPasswordRequest.Ticket);

            var resetPasswordViewModel = await MembershipViewService.ResetPasswordAsync(new ResetPasswordParam
            {
                Ticket      = ticket,
                NewPassword = resetPasswordRequest.NewPassword,
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                ReturnUrl   = returnUrl
            });

            return(Ok(resetPasswordViewModel));
        }
        public virtual async Task <IHttpActionResult> ChangePasswordAsync(ChangePasswordRequest changePasswordRequest)
        {
            if (changePasswordRequest == null)
            {
                return(BadRequest("No body found in the request"));
            }
            if (!ComposerContext.IsAuthenticated)
            {
                return(Unauthorized());
            }

            var returnUrl = changePasswordRequest.ReturnUrl;

            if (!UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl))
            {
                returnUrl = null;
            }

            var changePasswordViewModel = await MembershipViewService.ChangePasswordAsync(new ChangePasswordParam
            {
                CustomerId  = ComposerContext.CustomerId,
                NewPassword = changePasswordRequest.NewPassword,
                OldPassword = changePasswordRequest.OldPassword,
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                ReturnUrl   = returnUrl
            });

            return(Ok(changePasswordViewModel));
        }
        public virtual IHttpActionResult Logout(LogoutRequest logoutRequest)
        {
            if (logoutRequest == null)
            {
                throw new ArgumentNullException(nameof(logoutRequest));
            }

            var response = new LogoutResponse();

            if (!logoutRequest.PreserveCustomerInfo)
            {
                MembershipViewService.LogOutCustomer();
            }

            FormsAuthentication.SignOut();
            EditingOrderProvider.ClearEditMode();

            response.ReturnUrl = logoutRequest.ReturnUrl;
            if (string.IsNullOrWhiteSpace(response.ReturnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), response.ReturnUrl))
            {
                response.ReturnUrl = MyAccountUrlProvider.GetLoginUrl(new BaseUrlParameter
                {
                    CultureInfo = ComposerContext.CultureInfo
                });
            }

            return(Ok(response));
        }
        public virtual IHttpActionResult Register(RegisterRequest registerRequest)
        {
            //todo:  Captcha for bots or not?!
            if (registerRequest == null)
            {
                return(BadRequest("No body found in the request"));
            }

            var returnUrl = registerRequest.ReturnUrl;

            if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl))
            {
                returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter
                {
                    CultureInfo = ComposerContext.CultureInfo
                });
            }

            var registerParam = new CreateUserParam
            {
                Username         = registerRequest.Username,
                Password         = registerRequest.Password,
                Email            = registerRequest.Email,
                FirstName        = registerRequest.FirstName,
                LastName         = registerRequest.LastName,
                PhoneNumber      = registerRequest.PhoneNumber,
                PasswordQuestion = registerRequest.PasswordQuestion,
                PasswordAnswer   = registerRequest.PasswordAnswer,
                ReturnUrl        = returnUrl,
                Scope            = ComposerContext.Scope,
                CultureInfo      = ComposerContext.CultureInfo,
                GuestCustomerId  = ComposerContext.CustomerId
            };

            var createAccountViewModel = MembershipViewService.RegisterAsync(registerParam).Result;

            if (!createAccountViewModel.IsSuccess)
            {
                return(Ok(createAccountViewModel));
            }

            var loginParam = new LoginParam
            {
                CultureInfo     = ComposerContext.CultureInfo,
                Scope           = ComposerContext.Scope,
                GuestCustomerId = ComposerContext.CustomerId,
                Username        = registerRequest.Email,
                Password        = registerRequest.Password
            };

            var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result;

            ComposerContext.IsGuest    = false;
            ComposerContext.CustomerId = createAccountViewModel.CustomerId;
            FormsAuthentication.SetAuthCookie(createAccountViewModel.Username, true, WebsiteContext.WebsiteId.ToString());

            return(Ok(createAccountViewModel));
        }
        public virtual IHttpActionResult SignIn(LoginViewModel loginRequest)
        {
            if (loginRequest == null)
            {
                return(BadRequest("Request body cannot be null"));
            }

            var returnUrl = loginRequest.ReturnUrl;

            if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl))
            {
                returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter
                {
                    CultureInfo = ComposerContext.CultureInfo
                });
            }

            var loginParam = new LoginParam
            {
                Password        = loginRequest.Password,
                Username        = loginRequest.Username,
                Scope           = ComposerContext.Scope,
                CultureInfo     = ComposerContext.CultureInfo,
                ReturnUrl       = returnUrl,
                GuestCustomerId = ComposerContext.CustomerId,
            };

            var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result;

            if (!loginViewModel.IsSuccess)
            {
                return(Ok(loginViewModel));
            }

            ComposerContext.CustomerId = loginViewModel.CustomerId;
            ComposerContext.IsGuest    = false;

            if (loginRequest.IsRememberMe)
            {
                FormsAuthentication.SetAuthCookie(
                    loginViewModel.Username,
                    SiteConfiguration.CookieAccesserSettings.TimeoutInMinutes,
                    loginRequest.IsRememberMe,
                    WebsiteContext.WebsiteId.ToString(),
                    SiteConfiguration.CookieAccesserSettings.RequireSsl);
            }
            else
            {
                FormsAuthentication.SetAuthCookie(loginViewModel.Username, true, WebsiteContext.WebsiteId.ToString());
            }

            return(Ok(loginViewModel));
        }
Exemplo n.º 6
0
        public virtual async Task <IHttpActionResult> IsUserExist(string email)
        {
            var getCustomerByEmailParam = new GetCustomerByEmailParam
            {
                CultureInfo = ComposerContext.CultureInfo,
                Scope       = ComposerContext.Scope,
                Email       = email
            };

            var isUserExistViewModel = await MembershipViewService.GetIsUserExistViewModelAsync(getCustomerByEmailParam);

            return(Ok(isUserExistViewModel));
        }
        public virtual async Task <IHttpActionResult> SignIn()
        {
            var getSignInHeaderParam = new GetSignInHeaderParam
            {
                CustomerId          = ComposerContext.CustomerId,
                CultureInfo         = ComposerContext.CultureInfo,
                Scope               = ComposerContext.Scope,
                IsAuthenticated     = ComposerContext.IsAuthenticated,
                EncryptedCustomerId = ComposerContext.GetEncryptedCustomerId()
            };

            var signInHeaderViewModel = await MembershipViewService.GetSignInHeaderModel(getSignInHeaderParam);

            return(Ok(signInHeaderViewModel));
        }
        public virtual async Task <IHttpActionResult> UserMetadata()
        {
            var getParam = new GetUserMetadataParam
            {
                CustomerId          = ComposerContext.CustomerId,
                CultureInfo         = ComposerContext.CultureInfo,
                Scope               = ComposerContext.Scope,
                IsAuthenticated     = ComposerContext.IsAuthenticated,
                EncryptedCustomerId = ComposerContext.GetEncryptedCustomerId()
            };

            var vm = await MembershipViewService.GetUserMetadataModel(getParam);

            return(Ok(vm));
        }
        public virtual async Task <IHttpActionResult> ForgotPasswordAsync(ForgotPasswordRequest forgotPasswordRequest)
        {
            if (forgotPasswordRequest == null)
            {
                return(BadRequest("No body found in the request"));
            }

            var forgotPasswordViewModel = await MembershipViewService.ForgotPasswordAsync(new ForgotPasswordParam
            {
                Email       = forgotPasswordRequest.Email,
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo
            });

            return(Ok(forgotPasswordViewModel));
        }