예제 #1
0
        public async Task TestInitPassword()
        {
            var settingService = new Mock <ISettingService>();
            var syslogService  = new Mock <ISysLogService>();

            var ctrl  = new AdminController(settingService.Object, syslogService.Object);
            var model = new InitPasswordVM
            {
                password        = "",
                confirmPassword = ""
            };
            var act = await ctrl.InitPassword(model);

            Assert.IsNotNull(act);
            var vr = act as ViewResult;

            Assert.IsNotNull(vr);
            var msg = vr.ViewData["ErrorMessage"];

            Assert.AreEqual("密码不能为空", msg);
            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "******",
                confirmPassword = ""
            });

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("密码不能为空", msg);
            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "",
                confirmPassword = "******"
            });

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("密码不能为空", msg);

            model = new InitPasswordVM
            {
                password        = "******",
                confirmPassword = "******"
            };
            act = await ctrl.InitPassword(model);

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("密码最长不能超过50位", msg);

            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "******",
                confirmPassword = "******"
            });

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("输入的两次密码不一致", msg);

            settingService.Setup(s => s.HasAdminPassword()).ReturnsAsync(true);
            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "******",
                confirmPassword = "******"
            });

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("密码已经设置过,不需要再次设置", msg);

            settingService.Setup(s => s.HasAdminPassword()).ReturnsAsync(false);
            settingService.Setup(s => s.SetAdminPassword(It.IsAny <string>())).ReturnsAsync(false);
            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "******",
                confirmPassword = "******"
            });

            Assert.IsNotNull(act);
            vr = act as ViewResult;
            Assert.IsNotNull(vr);
            msg = vr.ViewData["ErrorMessage"];
            Assert.AreEqual("初始化密码失败", msg);

            settingService.Setup(s => s.SetAdminPassword(It.IsAny <string>())).ReturnsAsync(true);
            act = await ctrl.InitPassword(new InitPasswordVM
            {
                password        = "******",
                confirmPassword = "******"
            });

            Assert.IsNotNull(act);
            var rr = act as RedirectResult;

            Assert.IsNotNull(rr);
            Assert.AreEqual("InitPasswordSuccess", rr.Url);
        }
예제 #2
0
        public async Task <IActionResult> InitPassword([FromBody] InitPasswordVM model)
        {
            var password        = model.password;
            var confirmPassword = model.confirmPassword;

            if (string.IsNullOrEmpty(password) || string.IsNullOrEmpty(confirmPassword))
            {
                return(Json(new
                {
                    message = "密码不能为空",
                    success = false
                }));
            }

            if (password.Length > 50 || confirmPassword.Length > 50)
            {
                return(Json(new
                {
                    message = "密码最长不能超过50位",
                    success = false
                }));
            }

            if (password != confirmPassword)
            {
                return(Json(new
                {
                    message = "输入的两次密码不一致",
                    success = false
                }));
            }

            if (await _settingService.HasAdminPassword())
            {
                return(Json(new
                {
                    message = "密码已经设置过,不需要再次设置",
                    success = false
                }));
            }

            var result = await _settingService.SetAdminPassword(password);

            if (result)
            {
                await _sysLogService.AddSysLogAsync(new Data.Entity.SysLog
                {
                    LogTime = DateTime.Now,
                    LogType = Data.Entity.SysLogType.Normal,
                    LogText = $"管理员密码初始化成功"
                });

                return(Json(new
                {
                    success = true
                }));
            }
            else
            {
                return(Json(new
                {
                    message = "初始化密码失败",
                    success = false
                }));
            }
        }
예제 #3
0
        public async Task <IActionResult> InitPassword([FromBody] InitPasswordVM model)
        {
            var password        = model.password;
            var confirmPassword = model.confirmPassword;

            if (string.IsNullOrEmpty(password) || string.IsNullOrEmpty(confirmPassword))
            {
                return(Json(new
                {
                    message = "密码不能为空",
                    success = false
                }));
            }

            if (password.Length > 50 || confirmPassword.Length > 50)
            {
                return(Json(new
                {
                    message = "密码最长不能超过50位",
                    success = false
                }));
            }

            if (password != confirmPassword)
            {
                return(Json(new
                {
                    message = "输入的两次密码不一致",
                    success = false
                }));
            }

            if (await _settingService.HasSuperAdmin())
            {
                return(Json(new
                {
                    message = "密码已经设置过,不需要再次设置",
                    success = false
                }));
            }

            var result = await _settingService.SetSuperAdminPassword(password);

            if (result)
            {
                TinyEventBus.Instance.Fire(EventKeys.INIT_SUPERADMIN_PASSWORD_SUCCESS);

                return(Json(new
                {
                    success = true
                }));
            }
            else
            {
                return(Json(new
                {
                    message = "初始化密码失败",
                    success = false
                }));
            }
        }