예제 #1
0
        /// <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));
        }
예제 #2
0
 /// <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);
     }
 }
예제 #3
0
 /// <summary>
 /// 是否有权限
 /// </summary>
 /// <param name="moduleCode">模块编码</param>
 /// <param name="operateType">权限编码</param>
 /// <returns></returns>
 protected bool HasPermission(string moduleCode, PermissionOperate operateType)
 {
     return(HasPermission(moduleCode, operateType.ToString()));
 }