Beispiel #1
0
        public void TestChangeVerifyCodePost_NoUser()
        {
            string testUrl = "/lskfj";

            IRpcBroker broker = MockRpcBrokerFactory.GetChangeVerifyCodePostBroker(true, false);

            AccountController controller = new AccountController(broker);

            ChangeVerifyCode cvc = new ChangeVerifyCode()
            {
                OriginalVerifyCode = "",
                NewVerifyCode      = "",
                ConfirmVerifyCode  = "",
                RequestedUrl       = testUrl
            };

            int    timeout        = 0;
            string authorizedUser = "";

            ActionResult result = controller.ProcessChangeVerifyCodePost(cvc, true, true, out timeout, out authorizedUser);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
            RedirectToRouteResult routeResult = (RedirectToRouteResult)result;

            Assert.AreEqual("Home", routeResult.RouteValues["controller"]);
            Assert.AreEqual("Index", routeResult.RouteValues["action"]);
            Assert.IsTrue(timeout > 0);
            Assert.IsTrue(string.IsNullOrWhiteSpace(authorizedUser));
        }
        //public ChangeVerifyCodeData ChangeVerifyCode(ChangeVerifyCodeData changeVerifyCodeData)
        //{
        //    if (this.broker != null)
        //    {
        //        XusCvcCommand cvcCommand = new XusCvcCommand(this.broker, changeVerifyCodeData.OriginalVerifyCode, changeVerifyCodeData.NewVerifyCode, changeVerifyCodeData.ConfirmVerifyCode);
        //        cvcCommand.Execute();

        //        if (cvcCommand.Response.Status == ResponseStatus.Success)
        //            changeVerifyCodeData.SetLastOperation(true, cvcCommand.Response.InformationalMessage);
        //        else
        //            changeVerifyCodeData.SetLastOperation(false, cvcCommand.Response.InformationalMessage);
        //    }
        //    else
        //        changeVerifyCodeData.SetLastOperation(false, "No valid connection");

        //    return changeVerifyCodeData;
        //}

        public BrokerOperationResult ChangeVerifyCode(ChangeVerifyCode changeVerifyCodeData)
        {
            BrokerOperationResult returnResult = new BrokerOperationResult();

            if (this.broker != null)
            {
                XusCvcCommand cvcCommand = new XusCvcCommand(this.broker);

                // *** Make sure everything is upper case ***
                changeVerifyCodeData.OriginalVerifyCode = changeVerifyCodeData.OriginalVerifyCode.ToUpper().Trim();
                changeVerifyCodeData.NewVerifyCode      = changeVerifyCodeData.NewVerifyCode.ToUpper().Trim();
                changeVerifyCodeData.ConfirmVerifyCode  = changeVerifyCodeData.ConfirmVerifyCode.ToUpper().Trim();

                cvcCommand.AddCommandArguments(changeVerifyCodeData.OriginalVerifyCode, changeVerifyCodeData.NewVerifyCode, changeVerifyCodeData.ConfirmVerifyCode);

                RpcResponse response = cvcCommand.Execute();

                if (response.Status == RpcResponseStatus.Success)
                {
                    returnResult.SetResult(true, cvcCommand.Response.InformationalMessage);
                }
                else
                {
                    string message = string.IsNullOrWhiteSpace(cvcCommand.Response.InformationalMessage) ? "An unspecified error has occurred" : cvcCommand.Response.InformationalMessage;
                    returnResult.SetResult(false, message);
                }
            }
            else
            {
                returnResult.SetResult(false, "No valid connection");
            }

            return(returnResult);
        }
Beispiel #3
0
        public void TestChangeVerifyCodePost_FailedChange()
        {
            string testUrl = "/lskfj";

            IRpcBroker broker = MockRpcBrokerFactory.GetChangeVerifyCodePostBroker(false);

            AccountController controller = new AccountController(broker);

            ChangeVerifyCode cvc = new ChangeVerifyCode()
            {
                OriginalVerifyCode = "",
                NewVerifyCode      = "",
                ConfirmVerifyCode  = "",
                RequestedUrl       = testUrl
            };

            int    timeout        = 0;
            string authorizedUser = "";

            ActionResult result = controller.ProcessChangeVerifyCodePost(cvc, true, false, out timeout, out authorizedUser);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            ViewResult viewResult = (ViewResult)result;

            Assert.IsInstanceOfType(viewResult.Model, typeof(ChangeVerifyCode));
        }
        public ActionResult ChangeVerifyCode(string requestedurl)
        {
            // *** Show the change v code view ***

            ActionResult returnResult;

            ChangeVerifyCode cvcD = new ChangeVerifyCode();

            cvcD.RequestedUrl = Request.UrlReferrer.AbsolutePath;

            returnResult = View(cvcD);

            return(returnResult);
        }
        public ActionResult ChangeVerifyCode(ChangeVerifyCode changeVerifyCodeData)
        {
            // *** Change Verify Code Post Action ***

            ActionResult returnResult = null;

            // *** Prepare the data needed for processing ***
            bool   modelStateValid = this.ModelState.IsValid;
            bool   isAuthenticated = this.User.Identity.IsAuthenticated;
            int    timeout         = 0;
            string authorizedUser  = "";

            // *** Process the request ***
            returnResult = ProcessChangeVerifyCodePost(changeVerifyCodeData, modelStateValid, isAuthenticated, out timeout, out authorizedUser);

            // *** Set timeout ***
            if (timeout > 525600)
            {
                timeout = 525600;
            }

            // *** Set timeout ***
            if (timeout > 0)
            {
                VistaLogger.Log(string.Format("Setting Session Timeout to {0} minutes", timeout), "", -1, null, "");
                Session.Timeout = timeout;
            }

            // *** Set authorized user ***
            if (!string.IsNullOrWhiteSpace(authorizedUser))
            {
                FormsAuthentication.SetAuthCookie(authorizedUser, false);
            }

            return(returnResult);
        }
 public VerifyCodeResult()
 {
     this.ChangeVerifyCodeData = new ChangeVerifyCode();
 }
        public ActionResult ProcessChangeVerifyCodePost(ChangeVerifyCode changeVerifyCodeData, bool modelStateValid, bool isAuthenticated, out int timeout, out string authorizedUser)
        {
            // *** Change the verify code ***

            ActionResult returnResult = null;

            // *** Default return values ***
            timeout        = 2;
            authorizedUser = "";

            // *** Check model state ***
            if (modelStateValid)
            {
                // *** Change VC ***
                BrokerOperationResult opResult = this.DashboardRepository.Accounts.ChangeVerifyCode(changeVerifyCodeData);

                changeVerifyCodeData.Message = opResult.Message;

                // *** Check result ***
                if (opResult.Success)
                {
                    // *** If the user is not authenticated yet, do it now ***
                    if (isAuthenticated == false)
                    {
                        // *** Get the user data ***
                        UserResult userResult = this.DashboardRepository.Accounts.GetUserData();

                        // *** Check success ***
                        if (userResult.Success)
                        {
                            // *** Check that user has the proper context ***
                            BrokerOperationResult result = this.DashboardRepository.Accounts.CreateContext();

                            if (!result.Success)
                            {
                                //this.Error(result.Message);
                                //this.CloseBroker();
                                //authorizedUser = "";
                                //returnResult = RedirectToAction("Login");
                                returnResult = RedirectToAction("NoContext");
                            }
                            else
                            {
                                // *** Set the session timeout based on value in vista ***
                                int timeoutInSeconds = this.DashboardRepository.Accounts.GetUserTimeout();

                                // *** Set timeout ***
                                if (timeoutInSeconds > 525600)
                                {
                                    timeoutInSeconds = 525600;
                                }

                                // *** Convert timeout to minutes ***
                                timeout = timeoutInSeconds / 60;

                                // *** Set authorization cookie indicating logged in ***
                                authorizedUser = userResult.UserData.UserName;

                                this.Information("Your verify code has been changed");

                                // *** Redirect to original url ***
                                returnResult = Redirect(changeVerifyCodeData.RequestedUrl);
                            }
                        }
                        else
                        {
                            this.Error("Your verify code has been changed; but the user information could not be obtained.  Please log in again.");
                            returnResult = RedirectToAction("Index", "Home");
                        }
                    }
                    else
                    {
                        this.Information("Your verify code has been changed");
                        returnResult = RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    returnResult = this.View(changeVerifyCodeData);
                }
            }
            else
            {
                changeVerifyCodeData.Message = "All fields are required.";
                returnResult = this.View(changeVerifyCodeData);
            }

            return(returnResult);
        }