/// <summary> /// 设置用户角色(单个用户) /// </summary> /// <param name="userId">用户主键</param> /// <param name="roleIds">角色id,多个逗号隔开</param> public bool SetRoleSingle(int userId, string roleIds) { DataTable dt_user_role_old = new ZGZY.BLL.Role().GetRoleByUserId(userId); //用户之前拥有的角色 List <ZGZY.Model.UserRole> role_addList = new List <ZGZY.Model.UserRole>(); //需要插入角色的sql语句集合 List <ZGZY.Model.UserRole> role_deleteList = new List <ZGZY.Model.UserRole>(); //需要删除角色的sql语句集合 string[] str_role = roleIds.Trim(',').Split(','); //传过来用户勾选的角色(有去勾的也有新勾选的) ZGZY.Model.UserRole userroledelete = null; ZGZY.Model.UserRole userroleadd = null; //用户去掉勾选的角色(要删除本用户的角色) for (int i = 0; i < dt_user_role_old.Rows.Count; i++) { //等于-1说明用户去掉勾选了某个角色 需要删除 if (Array.IndexOf(str_role, dt_user_role_old.Rows[i]["roleid"].ToString()) == -1) { userroledelete = new ZGZY.Model.UserRole(); userroledelete.RoleId = Convert.ToInt32(dt_user_role_old.Rows[i]["roleid"].ToString()); userroledelete.UserId = userId; role_deleteList.Add(userroledelete); } } //用户新勾选的角色(要添加本用户的角色) if (!string.IsNullOrEmpty(roleIds)) { for (int j = 0; j < str_role.Length; j++) { //等于0那么原来的角色没有 是用户新勾选的 if (dt_user_role_old.Select("roleid = '" + str_role[j] + "'").Length == 0) { userroleadd = new ZGZY.Model.UserRole(); userroleadd.UserId = userId; userroleadd.RoleId = Convert.ToInt32(str_role[j]); role_addList.Add(userroleadd); } } } if (role_addList.Count == 0 && role_deleteList.Count == 0) { return(true); } else { return(dal.SetRoleSingle(role_addList, role_deleteList)); } }
/// <summary> /// 获取分页数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="columns">要取的列名(逗号分开)</param> /// <param name="order">排序</param> /// <param name="pageSize">每页大小</param> /// <param name="pageIndex">当前页</param> /// <param name="where">查询条件</param> /// <param name="totalCount">总记录数</param> public string GetPager(string tableName, string columns, string order, int pageSize, int pageIndex, string where, out int totalCount) { DataTable dt = ZGZY.Common.SqlPagerHelper.GetPager(tableName, columns, order, pageSize, pageIndex, where, out totalCount); dt.Columns.Add(new DataColumn("UserRoleId")); dt.Columns.Add(new DataColumn("UserRole")); dt.Columns.Add(new DataColumn("UserDepartmentId")); dt.Columns.Add(new DataColumn("UserDepartment")); for (int i = 0; i < dt.Rows.Count; i++) { //这么写多连了20*2次数据库,待改进 DataTable dtrole = new ZGZY.BLL.Role().GetRoleByUserId(Convert.ToInt32(dt.Rows[i]["Id"])); DataTable dtdepartment = new ZGZY.BLL.Department().GetDepartmentByUserId(Convert.ToInt32(dt.Rows[i]["Id"])); dt.Rows[i]["UserRoleId"] = ZGZY.Common.JsonHelper.ColumnToJson(dtrole, 0); dt.Rows[i]["UserRole"] = ZGZY.Common.JsonHelper.ColumnToJson(dtrole, 1); dt.Rows[i]["UserDepartmentId"] = ZGZY.Common.JsonHelper.ColumnToJson(dtdepartment, 0); dt.Rows[i]["UserDepartment"] = ZGZY.Common.JsonHelper.ColumnToJson(dtdepartment, 1); } return(ZGZY.Common.JsonHelper.ToJson(dt)); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; string action = context.Request.Params["action"]; ZGZY.Model.UserOperateLog userOperateLog = null; //操作日志对象 try { ZGZY.Model.User user = ZGZY.Common.UserHelper.GetUser(context); //获取cookie里的用户对象 userOperateLog = new Model.UserOperateLog(); userOperateLog.UserIp = context.Request.UserHostAddress; userOperateLog.UserName = user.UserId; switch (action) { case "getall": context.Response.Write(new ZGZY.BLL.Role().GetAllRole("1=1")); break; case "search": string strWhere = "1=1"; string sort = context.Request.Params["sort"]; //排序列 string order = context.Request.Params["order"]; //排序方式 asc或者desc int pageindex = int.Parse(context.Request.Params["page"]); int pagesize = int.Parse(context.Request.Params["rows"]); int totalCount; //输出参数 string strJson = new ZGZY.BLL.Role().GetPager("tbRole", "Id,RoleName,AddDate,ModifyDate,Description", sort + " " + order, pagesize, pageindex, strWhere, out totalCount); context.Response.Write("{\"total\": " + totalCount.ToString() + ",\"rows\":" + strJson + "}"); userOperateLog.OperateInfo = "查询角色"; userOperateLog.IfSuccess = true; userOperateLog.Description = "查询条件:" + strWhere + " 排序:" + sort + " " + order + " 页码/每页大小:" + pageindex + " " + pagesize; //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; case "searchRoleUser": int roleUserId = int.Parse(context.Request.Params["roleId"]); string sortRoleUser = context.Request.Params["sort"]; //排序列 string orderRoleUser = context.Request.Params["order"]; //排序方式 asc或者desc int pageindexRoleUser = int.Parse(context.Request.Params["page"]); int pagesizeRoleUser = int.Parse(context.Request.Params["rows"]); string strJsonRoleUser = new ZGZY.BLL.Role().GetPagerRoleUser(roleUserId, sortRoleUser + " " + orderRoleUser, pagesizeRoleUser, pageindexRoleUser); context.Response.Write(strJsonRoleUser); userOperateLog.OperateInfo = "查询角色用户"; userOperateLog.IfSuccess = true; userOperateLog.Description = "查询角色Id:" + roleUserId + " 排序:" + sortRoleUser + " " + orderRoleUser + " 页码/每页大小:" + pageindexRoleUser + " " + pagesizeRoleUser; //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; case "add": if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "add", user.Id)) { string ui_role_rolename_add = context.Request.Params["ui_role_rolename_add"] ?? ""; string ui_role_description_add = context.Request.Params["ui_role_description_add"] ?? ""; ZGZY.Model.Role roleAdd = new Model.Role(); roleAdd.RoleName = ui_role_rolename_add; roleAdd.Description = ui_role_description_add.Trim(); int roleId = new ZGZY.BLL.Role().AddRole(roleAdd); if (roleId > 0) { userOperateLog.OperateInfo = "添加角色"; userOperateLog.IfSuccess = true; userOperateLog.Description = "添加成功,角色主键:" + roleId; context.Response.Write("{\"msg\":\"添加成功!\",\"success\":true}"); } else { userOperateLog.OperateInfo = "添加角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "添加失败"; context.Response.Write("{\"msg\":\"添加失败!\",\"success\":false}"); } } else { userOperateLog.OperateInfo = "添加角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "无权限,请联系管理员"; context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}"); } //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; case "edit": if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "edit", user.Id)) { int id = Convert.ToInt32(context.Request.Params["id"]); string originalName = context.Request.Params["originalName"] ?? ""; string ui_role_rolename_edit = context.Request.Params["ui_role_rolename_edit"] ?? ""; string ui_role_description_edit = context.Request.Params["ui_role_description_edit"] ?? ""; ZGZY.Model.Role roleEdit = new Model.Role(); roleEdit.Id = id; roleEdit.RoleName = ui_role_rolename_edit; roleEdit.Description = ui_role_description_edit.Trim(); if (new ZGZY.BLL.Role().EditRole(roleEdit, originalName)) { userOperateLog.OperateInfo = "修改角色"; userOperateLog.IfSuccess = true; userOperateLog.Description = "修改成功,角色主键:" + roleEdit.Id; context.Response.Write("{\"msg\":\"修改成功!\",\"success\":true}"); } else { userOperateLog.OperateInfo = "修改角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "修改失败"; context.Response.Write("{\"msg\":\"修改失败!\",\"success\":false}"); } } else { userOperateLog.OperateInfo = "修改角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "无权限,请联系管理员"; context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}"); } //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; case "delete": if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "delete", user.Id)) { int id = Convert.ToInt32(context.Request.Params["id"]); if (new ZGZY.BLL.Role().DeleteRole(id)) { userOperateLog.OperateInfo = "删除角色"; userOperateLog.IfSuccess = true; userOperateLog.Description = "删除成功,角色主键:" + id; context.Response.Write("{\"msg\":\"删除成功!\",\"success\":true}"); } else { userOperateLog.OperateInfo = "删除角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "删除失败"; context.Response.Write("{\"msg\":\"删除失败!\",\"success\":false}"); } } else { userOperateLog.OperateInfo = "删除角色"; userOperateLog.IfSuccess = false; userOperateLog.Description = "无权限,请联系管理员"; context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}"); } //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; case "authorize": if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "authorize", user.Id)) { int roleId = Convert.ToInt32(context.Request.Params["roleId"]); //要授权的角色id string menuButtonId = context.Request.Params["menuButtonId"].Trim(','); //具体的菜单和按钮权限 if (new ZGZY.BLL.Role().Authorize(roleId, menuButtonId)) { userOperateLog.OperateInfo = "角色授权"; userOperateLog.IfSuccess = true; userOperateLog.Description = "授权成功,菜单/按钮Id:" + menuButtonId; context.Response.Write("{\"msg\":\"授权成功!\",\"success\":true}"); } else { userOperateLog.OperateInfo = "角色授权"; userOperateLog.IfSuccess = false; userOperateLog.Description = "授权失败"; context.Response.Write("{\"msg\":\"授权失败!\",\"success\":false}"); } } else { userOperateLog.OperateInfo = "角色授权"; userOperateLog.IfSuccess = false; userOperateLog.Description = "无权限,请联系管理员"; context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}"); } //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); break; default: context.Response.Write("{\"msg\":\"参数错误!\",\"success\":false}"); break; } } catch (Exception ex) { context.Response.Write("{\"msg\":\"" + ZGZY.Common.JsonHelper.StringFilter(ex.Message) + "\",\"success\":false}"); userOperateLog.OperateInfo = "角色功能异常"; userOperateLog.IfSuccess = false; userOperateLog.Description = ZGZY.Common.JsonHelper.StringFilter(ex.Message); //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog); } }