| | |
| | | <%@ WebHandler Language="C#" Class="SysUserHandler" %> |
| | | |
| | | |
| | | using Common; |
| | | using Dao; |
| | | using Model; |
| | |
| | | |
| | | public class SysUserHandler : PageHandler<SysUser> |
| | | { |
| | | private UserDao _Dao = new UserDao(); |
| | | private UserDao _Dao = new UserDao(); |
| | | |
| | | public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context) |
| | | { |
| | | string @string = context.GetString("action"); |
| | | switch (@string) |
| | | public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context) |
| | | { |
| | | case "saveUser": |
| | | return this.SaveUser(context); |
| | | case "loadUserList": |
| | | return this.LoadUserList(context); |
| | | case "deleteUser": |
| | | return this.DeleteUser(context); |
| | | case "loadUserInfo": |
| | | return this.LoadUserInfo(context); |
| | | case "loadUserMenuList": |
| | | return this.LoadUserMenuList(context); |
| | | case "updatePermission": |
| | | return this.UpdatePermission(context); |
| | | default: |
| | | throw new Exception("Invalid Action=" + @string); |
| | | string @string = context.GetString("action"); |
| | | switch (@string) |
| | | { |
| | | case "saveUser": |
| | | return this.SaveUser(context); |
| | | case "loadUserList": |
| | | return this.LoadUserList(context); |
| | | case "deleteUser": |
| | | return this.DeleteUser(context); |
| | | case "loadUserInfo": |
| | | return this.LoadUserInfo(context); |
| | | case "loadUserMenuList": |
| | | return this.LoadUserMenuList(context); |
| | | case "updatePermission": |
| | | return this.UpdatePermission(context); |
| | | case "updateStatus": |
| | | return this.UpdateStatus(context); |
| | | //修改密码 |
| | | case "updatePwd": |
| | | return UpdatePwd(context); |
| | | |
| | | default: |
| | | throw new Exception("Invalid Action=" + @string); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private JsonPageResult UpdatePermission(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1042", FailedOperation.PromptOnly); |
| | | string @string = context.GetString("menuIDArray"); |
| | | int @int = context.GetInt("userid"); |
| | | string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string); |
| | | if (menuIDArray == null) |
| | | throw new ArgumentException("菜单数据异常!"); |
| | | if (@int == 0) |
| | | throw new ArgumentException("USERID参数异常!"); |
| | | this._Dao.UpdatePermission(@int, menuIDArray); |
| | | return new JsonPageResult(true, (object) "保存权限成功!"); |
| | | } |
| | | |
| | | private JsonPageResult LoadUserList(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | int recordCount = 0; |
| | | int int1 = context.GetInt("pageSize", 20); |
| | | int int2 = context.GetInt("pageIndex", 1); |
| | | List<SysUser> list = this._Dao.LoadInfoList(out recordCount, int1, int2); |
| | | list.ForEach((Action<SysUser>) (u => u.Password = "")); |
| | | return new JsonPageResult(true, (object) new |
| | | private JsonPageResult UpdatePermission(PageContext<SysUser> context) |
| | | { |
| | | Table = list, |
| | | TotalCount = recordCount |
| | | }); |
| | | } |
| | | |
| | | private JsonPageResult DeleteUser(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1044", FailedOperation.PromptOnly); |
| | | int @int = context.GetInt("userid"); |
| | | if (@int == 1) |
| | | throw new ArgumentException("系统默认账户不能删除!"); |
| | | this._Dao.Delete(@int); |
| | | return new JsonPageResult(true, (object) "删除用户成功!"); |
| | | } |
| | | |
| | | private JsonPageResult LoadUserInfo(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | return new JsonPageResult(true, (object) this._Dao.GetUserInfo(context.GetInt("userid"))); |
| | | } |
| | | |
| | | private JsonPageResult LoadUserMenuList(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); |
| | | } |
| | | |
| | | private JsonPageResult SaveUser(PageContext<SysUser> context) |
| | | { |
| | | int int1 = context.GetInt("userid"); |
| | | string string1 = context.GetString("account"); |
| | | string string2 = context.GetString("password"); |
| | | string string3 = context.GetString("email"); |
| | | string string4 = context.GetString("mobile"); |
| | | int int2 = context.GetInt("emailFlag"); |
| | | int int3 = context.GetInt("mobileFlag"); |
| | | int num = 0; |
| | | if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}")) |
| | | throw new ArgumentException("账户至少3位可见字符,请重新输入!"); |
| | | if (string.IsNullOrEmpty(string2) || string2.Length < 6) |
| | | throw new ArgumentException("账户密码至少6位,请重新输入!"); |
| | | if (context.GetBoolean("isVerification")) |
| | | num = 1; |
| | | string string5 = context.GetString("clientIp"); |
| | | if (num == 1) |
| | | { |
| | | if (string.IsNullOrEmpty(string5)) |
| | | throw new ArgumentException("IP地址不能为空,请输入!"); |
| | | if (string.IsNullOrEmpty(string4.ToString()) || !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | context.CheckRight("1042", FailedOperation.PromptOnly); |
| | | string @string = context.GetString("menuIDArray"); |
| | | int @int = context.GetInt("userid"); |
| | | string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string); |
| | | if (menuIDArray == null) |
| | | throw new ArgumentException("菜单数据异常!"); |
| | | if (@int == 0) |
| | | throw new ArgumentException("USERID参数异常!"); |
| | | this._Dao.UpdatePermission(@int, menuIDArray); |
| | | return new JsonPageResult(true, (object) "保存权限成功!"); |
| | | } |
| | | if (!string.IsNullOrEmpty(string4.ToString()) && !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | if (!string.IsNullOrEmpty(string3) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+")) |
| | | throw new ArgumentException("邮箱地址无效,请重新输入!"); |
| | | if ((int3 == 1 || int3 == 2 || (int3 == 3 || int3 == 4) || int3 == 5) && !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | if ((int2 == 1 || int2 == 2 || (int2 == 3 || int2 == 4) || int2 == 5) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+")) |
| | | throw new ArgumentException("邮箱地址无效,请重新输入!"); |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.UserID = int1; |
| | | sysUser.Account = string1; |
| | | sysUser.CreateTime = DateTime.Now; |
| | | |
| | | private JsonPageResult LoadUserList(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | int recordCount = 0; |
| | | int int1 = context.GetInt("pageSize", 20); |
| | | int int2 = context.GetInt("pageIndex", 1); |
| | | List<SysUser> list = this._Dao.LoadInfoList(out recordCount, int1, int2); |
| | | list.ForEach((Action<SysUser>) (u => u.Password = "")); |
| | | return new JsonPageResult(true, (object) new |
| | | { |
| | | Table = list, |
| | | TotalCount = recordCount |
| | | }); |
| | | } |
| | | |
| | | private JsonPageResult DeleteUser(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1044", FailedOperation.PromptOnly); |
| | | int @int = context.GetInt("userid"); |
| | | if (@int == 1) |
| | | throw new ArgumentException("系统默认账户不能删除!"); |
| | | this._Dao.Delete(@int); |
| | | return new JsonPageResult(true, (object) "删除用户成功!"); |
| | | } |
| | | |
| | | private JsonPageResult LoadUserInfo(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | return new JsonPageResult(true, (object) this._Dao.GetUserInfo(context.GetInt("userid"))); |
| | | } |
| | | |
| | | private JsonPageResult LoadUserMenuList(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("104", FailedOperation.PromptOnly); |
| | | return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); |
| | | } |
| | | |
| | | private JsonPageResult SaveUser(PageContext<SysUser> context) |
| | | { |
| | | int int1 = context.GetInt("userid"); |
| | | string string1 = context.GetString("account"); |
| | | string string2 = context.GetString("password"); |
| | | string userName = context.GetString("userName"); |
| | | string userType = context.GetString("userType"); |
| | | string string3 = context.GetString("email"); |
| | | string string4 = context.GetString("mobile"); |
| | | int int2 = context.GetInt("emailFlag"); |
| | | int int3 = context.GetInt("mobileFlag"); |
| | | int num = 0; |
| | | if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}")) |
| | | throw new ArgumentException("账户至少3位可见字符,请重新输入!"); |
| | | if(int1<= 0 ) |
| | | { |
| | | if (string.IsNullOrEmpty(string2) || string2.Length < 6) |
| | | throw new ArgumentException("账户密码至少6位,请重新输入!"); |
| | | } |
| | | if (string.IsNullOrEmpty(userName)) |
| | | throw new ArgumentException("账户名称不能为空,请输入!"); |
| | | if (string.IsNullOrEmpty(userType)) |
| | | throw new ArgumentException("账户类型不能为空,请选择!"); |
| | | if (context.GetBoolean("isVerification")) |
| | | num = 1; |
| | | string string5 = context.GetString("clientIp"); |
| | | if (num == 1) |
| | | { |
| | | if (string.IsNullOrEmpty(string5)) |
| | | throw new ArgumentException("IP地址不能为空,请输入!"); |
| | | if (string.IsNullOrEmpty(string4.ToString()) || !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | } |
| | | if (!string.IsNullOrEmpty(string4.ToString()) && !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | if (!string.IsNullOrEmpty(string3) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+")) |
| | | throw new ArgumentException("邮箱地址无效,请重新输入!"); |
| | | if ((int3 == 1 || int3 == 2 || (int3 == 3 || int3 == 4) || int3 == 5) && !Regex.IsMatch(string4, "1\\d{10}")) |
| | | throw new ArgumentException("手机号码无效,请重新输入!"); |
| | | if ((int2 == 1 || int2 == 2 || (int2 == 3 || int2 == 4) || int2 == 5) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+")) |
| | | throw new ArgumentException("邮箱地址无效,请重新输入!"); |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.UserID = int1; |
| | | sysUser.Account = string1; |
| | | |
| | | if (this._Dao.UserNameExists(userName, int1)) |
| | | throw new ArgumentException("账户名称已经存在,请重新输入!"); |
| | | |
| | | sysUser.UserName = userName; |
| | | sysUser.UserType = string.IsNullOrEmpty(userType) ? 0 : int.Parse(userType); |
| | | sysUser.CreateTime = DateTime.Now; |
| | | |
| | | /** |
| | | //获取唯一标识符 |
| | | string salt = DataConverter.getRandom(6); |
| | | if (int1 > 0) |
| | | { |
| | | SysUser userInfo = this._Dao.GetUserInfo(int1); |
| | | sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2); |
| | | sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; |
| | | SysUser userInfo = this._Dao.GetUserInfo(int1); |
| | | sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2); |
| | | sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; |
| | | } |
| | | else |
| | | { |
| | | sysUser.Password = DataHelper.MD5Hex(string2); |
| | | sysUser.IsEncryption = 1; |
| | | string2 += salt; |
| | | sysUser.Password = DataHelper.MD5Hex(string2); |
| | | sysUser.IsEncryption = 1; |
| | | sysUser.Salt = salt; |
| | | }**/ |
| | | |
| | | sysUser.Email = string3; |
| | | sysUser.Mobile = string4; |
| | | sysUser.MobileFlag = int3; |
| | | sysUser.EmailFlag = int2; |
| | | sysUser.IsVerification = num; |
| | | sysUser.ClientIp = string5; |
| | | if (int1 > 0) |
| | | { |
| | | context.CheckRight("1042", FailedOperation.PromptOnly); |
| | | if (int1 > 0) |
| | | { |
| | | SysUser userInfo = this._Dao.GetUserInfo(int1); |
| | | sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; |
| | | } |
| | | //edit:yangzh by 20220612 修改时不更新密码 |
| | | this._Dao.Update(sysUser); |
| | | } |
| | | else |
| | | { |
| | | context.CheckRight("1041", FailedOperation.PromptOnly); |
| | | if (this._Dao.Exists(string1)) |
| | | throw new ArgumentException("账户已经存在,请重新输入!"); |
| | | |
| | | |
| | | string password = ""; |
| | | if(int1> 0 ) |
| | | { |
| | | throw new ArgumentException("密码不能为空,请重新输入!"); |
| | | } |
| | | |
| | | //获取唯一标识符 |
| | | string salt = DataConverter.getRandom(6); |
| | | |
| | | string2 += salt; |
| | | password = DataHelper.MD5Hex(string2); |
| | | |
| | | sysUser.IsEncryption = 1; |
| | | sysUser.Salt = salt; |
| | | sysUser.Password = password; |
| | | |
| | | this._Dao.Add(sysUser); |
| | | |
| | | } |
| | | return new JsonPageResult(true, (object) "账户保存成功!"); |
| | | } |
| | | sysUser.Email = string3; |
| | | sysUser.Mobile = string4; |
| | | sysUser.MobileFlag = int3; |
| | | sysUser.EmailFlag = int2; |
| | | sysUser.IsVerification = num; |
| | | sysUser.ClientIp = string5; |
| | | if (int1 > 0) |
| | | |
| | | |
| | | //更新信息启用或停用 |
| | | private JsonPageResult UpdateStatus(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1042", FailedOperation.PromptOnly); |
| | | this._Dao.Update(sysUser); |
| | | int userId = context.GetInt("userId"); |
| | | int status = context.GetInt("status"); |
| | | |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.UserID = userId; |
| | | sysUser.Status = status; |
| | | this._Dao.UpdateStatus(sysUser); |
| | | return new JsonPageResult(true, "更新信息状态成功!"); |
| | | |
| | | } |
| | | else |
| | | |
| | | //修改密码 |
| | | private JsonPageResult UpdatePwd(PageContext<Model.SysUser> context) |
| | | { |
| | | context.CheckRight("1041", FailedOperation.PromptOnly); |
| | | if (this._Dao.Exists(string1)) |
| | | throw new ArgumentException("账户已经存在,请重新输入!"); |
| | | this._Dao.Add(sysUser); |
| | | string account = context.GetString("account"); |
| | | string newPwd = context.GetString("newPwd"); |
| | | int userID = 0; |
| | | |
| | | if (string.IsNullOrEmpty(account)) |
| | | { |
| | | throw new ArgumentException("系统账号参数异常!"); |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(newPwd) || !System.Text.RegularExpressions.Regex.IsMatch(newPwd, @"[a-zA-Z0-9]{4,10}")) |
| | | { |
| | | throw new ArgumentException("登录密码不能为空,且必须为4-10位英文或数字字符组合!"); |
| | | } |
| | | string salt = ""; |
| | | SysUser sysUser = _Dao.GetUser(account); |
| | | |
| | | salt = sysUser.Salt==null? "": sysUser.Salt.ToString(); |
| | | newPwd += salt; |
| | | |
| | | //密码MD5加密, |
| | | newPwd = DataHelper.MD5Hex(newPwd); |
| | | |
| | | _Dao.UpdatePwd(account, newPwd ); |
| | | |
| | | return new JsonPageResult(true, (object)"修改密码成功!"); |
| | | } |
| | | return new JsonPageResult(true, (object) "账户保存成功!"); |
| | | } |
| | | } |