示例#1
0
        private static bool CheckRight(RmsPM.Web.User user, string Right, string RightLevel)
        {
            bool hasit = true;

            if (Right != string.Empty && (!user.HasRight(Right)))
            {
                hasit = false;
            }
            if (RightLevel != string.Empty)
            {
                if (RightLevel == "IsGroupUser")
                {
                    if (!user.m_IsGroupUser)
                    {
                        hasit = false;
                    }
                }
            }
            return(hasit);
        }
示例#2
0
        /// <summary>
        /// 分析树,结合用户权限判断是否显示节点
        /// </summary>
        /// <param name="user">用户</param>
        /// <param name="corpCode"></param>
        /// <param name="projectCode">工程代码</param>
        public string GetLeftBarString(RmsPM.Web.User user, string projectCode, string corpCode)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                if (m_XMLFileName.Length == 0)
                {
                    return("");
                }

                XmlDocument doc = new XmlDocument();
                doc.Load(m_XMLFileName);


                XmlNodeList moduleNodeList = doc.DocumentElement.SelectNodes("Module");
                int         iCount         = moduleNodeList.Count;
                for (int i = 0; i < iCount; i++)
                {
                    XmlNode moduleNode = moduleNodeList[i];
                    Module  module     = BuildModule(moduleNode, projectCode, corpCode);

                    //  Right == "" 不要求权限; 或者用户具有该权限
                    if ((module.right == "") || user.HasRight(module.right))
                    {
                        XmlNodeList submoduleNodeList = moduleNode.SelectNodes("SubModule");
                        ArrayList   subModules        = new ArrayList();
                        int         iSubCount         = submoduleNodeList.Count;
                        for (int j = 0; j < iSubCount; j++)
                        {
                            XmlNode submoduleNode = submoduleNodeList[j];
                            Module  subModule     = BuildModule(submoduleNode, projectCode, corpCode);
                            if ((subModule.right == "") || user.HasRight(subModule.right))
                            {
                                subModules.Add(subModule);
                            }
                        }
                        if (module.url.Trim() != string.Empty)//当前节点直接进入URL链接
                        {
                            sb.Append(@"<table width=100% border=0 cellpadding=0 cellspacing=0>" + "\n");
                            sb.Append(@"<tr><td id='tdGroup" + i.ToString() + @"' class=menu  onclick=""gotoUrl('" + module.url + @"');""  onmouseover=""this.className='menuon';"" onmouseout=""this.className='menu'""  name=" + module.name + @" child=" + module.child + @"><img src=""images/menu_li.gif"" width=14 height=10> " + module.text + @"</td></tr>" + "\n");
                            sb.Append(@"</table>" + "\n");
                        }
                        // 如果一个子节点都没有,父节点就一起不要了
                        else if (subModules.Count > 0)
                        {
                            sb.Append(@"<table width=100% border=0 cellpadding=0 cellspacing=0>" + "\n");
                            sb.Append(@"<tr><td id='tdGroup" + i.ToString() + @"' class=menu  onclick=""outliner()""  onmouseover=""this.className='menuon';"" onmouseout=""this.className='menu'""  name=" + module.name + @" child=" + module.child + @"><img src=""images/menu_li.gif"" width=14 height=10> " + module.text + @"</td></tr>" + "\n");
                            sb.Append(@"<tr><td><DIV class=collapsed id=" + module.name + @"><table width=100% border=0 cellpadding=0 cellspacing=0  bgcolor=#FF0000>" + "\n");

                            int iACount = subModules.Count;
                            for (int j = 0; j < iACount; j++)
                            {
                                Module tempM = (Module)subModules[j];

                                // 最后一个子模块的样式不一样
                                string subClass = "menu-i";
                                if (j == iACount - 1)
                                {
                                    subClass = "menu-ibn";
                                }

                                switch (tempM.name)
                                {
                                case "@MaterialCostFirstGroup":      //列出材料库一级分类
                                    EntityData entityMaterialCostGroup = DAL.EntityDAO.SystemManageDAO.GetSystemGroupByClassCode("1411");
                                    DataView   dvMaterialCostGroup     = new DataView(entityMaterialCostGroup.CurrentTable, "ParentCode=''", "SortID", DataViewRowState.CurrentRows);
                                    foreach (DataRowView drv in dvMaterialCostGroup)
                                    {
                                        string GroupCode = BLL.ConvertRule.ToString(drv.Row["GroupCode"]);
                                        string GroupName = BLL.ConvertRule.ToString(drv.Row["GroupName"]);

                                        GroupName = string.Format(tempM.text, GroupName);

                                        //是否有权限(暂缓)

                                        string url = tempM.url;
                                        if (url.IndexOf("?") >= 0)
                                        {
                                            url += "&";
                                        }
                                        else
                                        {
                                            url += "?";
                                        }
                                        url += "RootGroupCode=" + GroupCode;
                                        sb.Append(@"<tr onclick=""gotoUrl('" + url + @"');""><td onmouseover=""this.className='menu-ibnon';"" onmouseout=""this.className='" + subClass + @"'"" class=" + subClass + @"><img src=""images/menu_li_i.gif"" width=7 height=7>  " + GroupName + @"</td></tr>" + "\n");
                                    }
                                    entityMaterialCostGroup.Dispose();

                                    break;

                                case "@WorkDeep1":      //列出项目下的第1级工作项
                                    DataTable tbTask = BLL.WBSRule.GetHasRightChildTask(1, projectCode, user.UserCode);

                                    foreach (DataRow dr in tbTask.Rows)
                                    {
                                        string WBSCode  = BLL.ConvertRule.ToString(dr["WBSCode"]);
                                        string TaskName = BLL.ConvertRule.ToString(dr["TaskName"]);

                                        string url = tempM.url;
                                        if (url.IndexOf("?") >= 0)
                                        {
                                            url += "&";
                                        }
                                        else
                                        {
                                            url += "?";
                                        }
                                        url += "ParentCode=" + WBSCode;
                                        sb.Append(@"<tr onclick=""gotoUrl('" + url + @"');""><td onmouseover=""this.className='menu-ibnon';"" onmouseout=""this.className='" + subClass + @"'"" class=" + subClass + @"><img src=""images/menu_li_i.gif"" width=7 height=7>  " + TaskName + @"</td></tr>" + "\n");
                                    }

                                    break;

                                case "@ProjectList":      //列出用户有权访问的所有项目
                                    EntityData entityProject = user.m_EntityDataAccessProject;

                                    foreach (DataRow dr in entityProject.CurrentTable.Rows)
                                    {
                                        string ProjectCode = BLL.ConvertRule.ToString(dr["ProjectCode"]);
                                        string ProjectName = BLL.ConvertRule.ToString(dr["ProjectShortName"]);
                                        if (ProjectName == "")
                                        {
                                            ProjectName = BLL.ConvertRule.ToString(dr["ProjectShortName"]);
                                        }

                                        string url = tempM.url;
                                        if (url.IndexOf("?") >= 0)
                                        {
                                            url += "&";
                                        }
                                        else
                                        {
                                            url += "?";
                                        }
                                        url += "ProjectCode=" + ProjectCode;

                                        sb.Append(@"<tr onclick=""gotoUrl('" + url + @"');""><td onmouseover=""this.className='menu-ibnon';"" onmouseout=""this.className='" + subClass + @"'"" class=" + subClass + @"><img src=""images/menu_li_i.gif"" width=7 height=7>  " + ProjectName + tempM.text + @"</td></tr>" + "\n");
                                    }

                                    break;

                                default:
                                    sb.Append(@"<tr onclick=""gotoUrl('" + tempM.url + @"');""><td onmouseover=""this.className='menu-ibnon';"" onmouseout=""this.className='" + subClass + @"'"" class=" + subClass + @"><img src=""images/menu_li_i.gif"" width=7 height=7>  " + tempM.text + @"</td></tr>" + "\n");
                                    break;
                                }
                            }


                            sb.Append(@"</table></DIV></td></tr>" + "\n");
                        }
                    }
                }
                sb.Append(@"<tr><td><img src=""images/menu_btm.gif"" width=146 height=20></td></tr></table>");
                return(sb.ToString());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }