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); }
/// <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; } }