Exemple #1
0
        public JsonResult ChangePwd(string account, string oldPwd, string newPwd)
        {
            if (account.IsNullOrEmpty() || oldPwd.IsNullOrEmpty() || newPwd.IsNullOrEmpty())
            {
                return(Json(ErrorModel.InputError));
            }

            if (oldPwd == newPwd)
            {
                return(Json(ErrorModel.OperateSuccess));
            }

            var userBll = new SystemUserBll();
            var user    = userBll.QuerySingle($"[Account]='{account}' AND IsDelete=0");

            if (user == null)
            {
                return(Json(ErrorModel.InputError));
            }

            // 确保只有在旧密码输入正确的情况下才允许修改密码
            if (oldPwd.GetMd5() != user.Password)
            {
                return(Json(ErrorModel.WrongPassword));
            }

            user.Password = newPwd.GetMd5();
            var success = userBll.ExecuteTransation(
                () => userBll.Update(user),
                () => new OperateLogBll().Add(nameof(SystemUser), user.Id, DataUpdateType.Update, 0,
                                              $"修改了账户[{user.Account}]的密码")
                );

            return(Json(success ? ErrorModel.OperateSuccess : ErrorModel.OperateFailed));
        }
Exemple #2
0
        public JsonResult AddOrUpdate(SystemUser user, int[] menus)
        {
            if (user != null && menus != null)
            {
                var bll = new SystemUserBll();

                var loginUserId = LoginStatus.GetLoginId();
                if (user.Id == 0)
                {
                    user.CreatorId = loginUserId;
                    // 验证账户是否重复
                    if (bll.Exists($"[Account]='{user.Account}' AND IsDelete=0"))
                    {
                        return(Json(ErrorModel.ExistSameItem));
                    }
                }
                user.Password = user.Password.GetMd5();

                var log         = user.Id == 0 ? $"添加了新账户:{user.Name}-{user.Account}" : $"修改了账户:{user.Name}-{user.Account}";
                var operateType = user.Id == 0 ? DataUpdateType.Insert : DataUpdateType.Update;

                bool DoAddOrUpdate()
                {
                    if (user.Id == 0)
                    {
                        return(bll.Insert(user).Id > 0);
                    }

                    return(bll.Update(user));
                }

                var success = bll.ExecuteTransation(
                    DoAddOrUpdate,
                    () => AddPermisions(user, menus),
                    () => new OperateLogBll().Add(nameof(SystemUser), user.Id, operateType, loginUserId, log)
                    );

                return(Json(success ? ErrorModel.OperateSuccess : ErrorModel.OperateFailed));
            }
            else
            {
                return(Json(ErrorModel.InputError));
            }
        }
Exemple #3
0
        public JsonResult Delete(int id)
        {
            var bll  = new SystemUserBll();
            var user = bll.QuerySingle(id);

            if (user == null)
            {
                return(Json(ErrorModel.InputError));
            }

            var loginId = LoginStatus.GetLoginId();
            var log     = $"删除了账户:{user.Name}-{user.Account}";
            var success = bll.ExecuteTransation(
                () => bll.DeleteSoftly(id),
                () => new OperateLogBll().Add(nameof(SystemUser), id, DataUpdateType.Delete, loginId, log)
                );

            return(Json(success ? ErrorModel.OperateSuccess : ErrorModel.OperateFailed));
        }
Exemple #4
0
        /// <summary>
        /// 系统初次部署时,添加管理员账号
        /// </summary>
        private void btnAdmin_Click(object sender, EventArgs e)
        {
            var admin = new SystemUser {
                Account = "admin", CreateTime = DateTime.Now, CreatorId = 0, IsSuper = true, Name = "Administrator", Password = "******".GetMd5()
            };
            var bll = new SystemUserBll();

            if (bll.Exists("IsSuper=1"))
            {
                MessageBox.Show(@"管理员账号已存在(:=");
                return;
            }

            var success = bll.Insert(admin).Id > 0;

            if (success)
            {
                MessageBox.Show(@"管理员账号添加成功");
            }
        }
Exemple #5
0
        public JsonResult Login(LoginModel loginModel)
        {
            if (ModelState.IsValid)
            {
                var systemUserBll = new SystemUserBll();

                int userId;
                var loginResult = systemUserBll.Login(loginModel.Account, loginModel.Password, out userId);

                if (loginResult == LoginResult.NotExists || loginResult == LoginResult.PasswordError)
                {
                    return(Json(ErrorModel.LoginFailed));
                }

                // 记录登录状态
                if (loginModel.Remember)
                {
                    LoginStatus.WriteCookie(userId);
                }
                else
                {
                    LoginStatus.RemoveCookie();
                    LoginStatus.WriteSession();
                }

                // 记录管理员id
                CookieHelper.Set(CookieNames.LoginUserId, userId.ToString());

                //====================================
                //2017-08-04 为使用vue做的后台生成token
                var token = $"{userId}:{DateTime.Now.Timestamp()}";
                var user  = systemUserBll.QuerySingle(userId);
                user.Password = "";

                return(Json(ErrorModel.LoginSuccess(new { token, user })));
            }

            return(Json(ErrorModel.InputError));
        }