/// <summary> /// 获取网格HTML /// </summary> /// <param name="request">请求对象</param> /// <returns></returns> public static string GetGridHTML(HttpRequest request) { UserInfo currUser = UserInfo.GetCurretnUser(ApplicationObject.GetHttpContext(request)); if (currUser == null) { return(GetAccountExpiredTipHtml()); } #region 参数初始化 Guid moduleId = UIOperate.GetModuleIdByRequest(request); //模块Id Guid? menuId = request.Query.ContainsKey("mId") ? request.Query["mId"].ObjToGuidNull() : null; //菜单ID UIFrameFactory frameFactory = UIFrameFactory.GetInstance(request); string condition = string.Empty; //条件参数 Guid? viewId = null; //视图Id DataGridType gridType = DataGridType.MainGrid; string initModule = string.Empty; string initField = string.Empty; Dictionary <string, object> dic = null; //网格其他参数 string page = request.Query["page"].ObjToStr(); //页面类型 condition = HttpUtility.UrlDecode(request.Query["condition"].ObjToStr()); //条件参数 viewId = request.Query.ContainsKey("viewId") ? request.Query["viewId"].ObjToGuidNull() : null; //视图Id bool recycle = request.Query["recycle"].ObjToInt() == 1; //是否回收站 bool draft = request.Query["draft"].ObjToInt() == 1; //我的草稿 gridType = DataGridType.MainGrid; initModule = string.Empty; initField = string.Empty; if (page == "fdGrid") //弹出网格 { gridType = DataGridType.DialogGrid; } else if (page == "fwGrid") //列表页面明细或附属模块网格 { gridType = DataGridType.FlowGrid; } else if (page == "inGrid") //网格内嵌入网格 { gridType = DataGridType.InnerDetailGrid; } else if (page == "otGrid") //其他网格 { gridType = DataGridType.Other; } else if (recycle) //回收站网格 { gridType = DataGridType.RecycleGrid; } else if (draft) //我的草稿网格 { gridType = DataGridType.MyDraftGrid; } if (gridType == DataGridType.DialogGrid) { initModule = HttpUtility.UrlDecode(request.Query["initModule"].ObjToStr()); initField = request.Query["initField"].ObjToStr(); } //where条件语句 string where = request.Query["where"].ObjToStr(); if (!string.IsNullOrWhiteSpace(where)) { try { where = MySecurity.DecodeBase64(HttpUtility.UrlDecode(where)).ReplaceSpecialCharOfSQL(); } catch { where = string.Empty; } } //过滤字段 List <string> filterFieldsList = null; string filterFields = request.Query["filterFields"].ObjToStr(); if (!string.IsNullOrWhiteSpace(filterFields)) { filterFieldsList = filterFields.Split(",".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries).ToList(); } //提出网格参数 if (request.Query.Keys.Where(x => x.StartsWith("p_")).Count() > 0) { dic = new Dictionary <string, object>(); List <string> keys = request.Query.Keys.Where(x => x.StartsWith("p_")).Distinct().ToList(); foreach (string key in keys) { dic.Add(key, request.Query[key]); } } string mutiSelect = request.Query["ms"].ObjToStr(); //启用多选 if (mutiSelect == "1") { if (dic == null) { dic = new Dictionary <string, object>(); } dic.Add("muti_select", true); } #endregion #region 权限判断 if (gridType == DataGridType.MainGrid) { bool noVeryfyMenuPower = request != null && request.Query["nvm"].ObjToInt() == 1; //包含nvm=1时不验证菜单权限 if (!noVeryfyMenuPower) //需要验证菜单权限 { bool hasPermission = menuId.HasValue && menuId.Value != Guid.Empty ? PermissionOperate.HasMenuPermission(currUser, menuId.Value) : PermissionOperate.HasModuleBrowerPermission(currUser, moduleId); if (!hasPermission) { return("<div style=\"padding-top:20px;width:100%;text-align:center\"><font style=\"color:red;font-size:16px;font-weight:bold;\">您没有该模块数据的浏览权限!</font>"); } } } #endregion return(frameFactory.GetGridHTML(moduleId, gridType, condition, where, viewId, initModule, initField, dic, false, filterFieldsList, menuId, false, request)); }
/// <summary> /// 获取用户扩展信息 /// </summary> /// <param name="userInfo">用户信息</param> /// <returns></returns> public static UserExtendBase GetUserExtend(UserInfo userInfo) { if (userInfo == null) { return(null); } if (userInfo.ExtendUserObject != null) { return(userInfo.ExtendUserObject); } if (userInfo.EmpId.HasValue) { List <EmpExtendInfo> empExtends = new List <EmpExtendInfo>(); List <Guid> companyIds = OrgMOperate.GetEmpCompanys(userInfo.EmpId.Value).Select(x => x.Id).ToList(); if (companyIds.Count > 0) { foreach (Guid companyId in companyIds) { OrgM_Dept mainDept = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value, companyId); OrgM_Duty mainDuty = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value, companyId); List <OrgM_Dept> partimeDepts = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value, companyId); List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value, companyId); empExtends.Add(new EmpExtendInfo() { CompanyId = companyId, DeptId = mainDept != null ? mainDept.Id : (Guid?)null, DeptName = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty, DutyId = mainDuty != null ? mainDuty.Id : (Guid?)null, DutyName = mainDuty != null ? mainDuty.Name : string.Empty, PartimeDeptIds = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null, PartimeDeptNames = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null, PartimePositionIds = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null, PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null }); } } else { OrgM_Dept mainDept = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value); OrgM_Duty mainDuty = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value); List <OrgM_Dept> partimeDepts = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value); List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value); empExtends.Add(new EmpExtendInfo() { CompanyId = null, DeptId = mainDept != null ? mainDept.Id : (Guid?)null, DeptName = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty, DutyId = mainDuty != null ? mainDuty.Id : (Guid?)null, DutyName = mainDuty != null ? mainDuty.Name : string.Empty, PartimeDeptIds = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null, PartimeDeptNames = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null, PartimePositionIds = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null, PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null }); } UserExtendInfo userExtendInfo = new UserExtendInfo() { EmpExtend = empExtends }; List <Sys_UserRole> userRoles = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId); if (userRoles.Count > 0) { userExtendInfo.RoleIds = userRoles.Select(x => x.Sys_RoleId).ToList(); userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList(); } return(userExtendInfo); } else { UserExtendInfo userExtendInfo = new UserExtendInfo(); List <Sys_UserRole> userRoles = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId); if (userRoles.Count > 0) { userExtendInfo.RoleIds = userRoles.Select(x => x.Sys_RoleId).ToList(); userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList(); } return(userExtendInfo); } }
/// <summary> /// 是否有权限 /// </summary> /// <param name="moduleCode">模块编码</param> /// <param name="operateType">权限编码</param> /// <returns></returns> protected bool HasPermission(string moduleCode, PermissionOperate operateType) { return(HasPermission(moduleCode, operateType.ToString())); }