You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.3 KiB
92 lines
3.3 KiB
2 weeks ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Text;
|
||
|
using Stone.Entity;
|
||
|
using System.Data;
|
||
|
using System.Windows.Forms;
|
||
|
|
||
|
namespace Stone.User
|
||
|
{
|
||
|
public class F_Authority
|
||
|
{
|
||
|
public static void Init(TreeView leftTree, string UserName)
|
||
|
{
|
||
|
leftTree.CheckBoxes = true;
|
||
|
|
||
|
DataSet dsMenu = GetData();
|
||
|
DataTable dtAuthority = GetAuthority(UserName);
|
||
|
DataRow[] drOnes = dsMenu.Tables[0].Select("[Levels]=1", "[Sort] asc");
|
||
|
foreach (DataRow drOne in drOnes)
|
||
|
{
|
||
|
string oneCode = drOne["Code"].ToString();
|
||
|
|
||
|
TreeNode nodeOne = new TreeNode(drOne["Name"].ToString(), 0, 1);
|
||
|
if (Convert.ToInt32(drOne["IsChild"]) == 1) nodeOne = new TreeNode(drOne["Name"].ToString(), 2, 3);
|
||
|
nodeOne.Tag = drOne["Code"].ToString();
|
||
|
|
||
|
if (dtAuthority.Select("[MenuCode]='" + oneCode + "'").Length > 0) nodeOne.Checked = true;
|
||
|
|
||
|
|
||
|
DataRow[] drTows = dsMenu.Tables[0].Select("[Levels]=2 and [Code] like '" + oneCode + "%'", "[Sort] asc");
|
||
|
foreach (DataRow drTow in drTows)
|
||
|
{
|
||
|
string towCode = drTow["Code"].ToString();
|
||
|
|
||
|
|
||
|
TreeNode nodeTow = new TreeNode(drTow["Name"].ToString(), 0, 1);
|
||
|
if (Convert.ToInt32(drTow["IsChild"]) == 1) nodeTow = new TreeNode(drTow["Name"].ToString(), 2, 3);
|
||
|
nodeTow.Tag = drTow["Code"].ToString();
|
||
|
|
||
|
if (dtAuthority.Select("[MenuCode]='" + towCode + "'").Length > 0) nodeTow.Checked = true;
|
||
|
|
||
|
DataRow[] drThrees = dsMenu.Tables[0].Select("[Levels]=3 and [Code] like '" + towCode + "%'", "[Sort] asc");
|
||
|
foreach (DataRow drThree in drThrees)
|
||
|
{
|
||
|
string treeCode = drThree["Code"].ToString();
|
||
|
|
||
|
TreeNode nodeThree = new TreeNode(drThree["Name"].ToString(), 0, 1);
|
||
|
if (Convert.ToInt32(drThree["IsChild"]) == 1) nodeThree = new TreeNode(drThree["Name"].ToString(), 2, 3);
|
||
|
nodeThree.Tag = drThree["Code"].ToString();
|
||
|
|
||
|
if (dtAuthority.Select("[MenuCode]='" + treeCode + "'").Length > 0) nodeThree.Checked = true;
|
||
|
|
||
|
nodeTow.Nodes.Add(nodeThree);
|
||
|
}
|
||
|
|
||
|
|
||
|
nodeOne.Nodes.Add(nodeTow);
|
||
|
}
|
||
|
|
||
|
leftTree.Nodes.Add(nodeOne);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
leftTree.ExpandAll();
|
||
|
}
|
||
|
|
||
|
private static DataSet GetData()
|
||
|
{
|
||
|
Entity_t_Sys_Menu t_Menu = new Entity_t_Sys_Menu();
|
||
|
return t_Menu.GetData("[IsShow]=1");
|
||
|
|
||
|
}
|
||
|
|
||
|
private static DataTable GetAuthority(string UserName)
|
||
|
{
|
||
|
Entity_t_Sys_User t_Sys_User = new Entity_t_Sys_User();
|
||
|
Entity_t_Sys_Menu_Authority t_Sys_Menu_Authority = new Entity_t_Sys_Menu_Authority();
|
||
|
|
||
|
DataTable dtUser = t_Sys_User.GetData("[Name]='" + UserName + "'").Tables[0];
|
||
|
if (dtUser.Rows.Count == 0) throw new Exception(UserName + " 在系统中不存在");
|
||
|
|
||
|
string UserID = dtUser.Rows[0]["ID"].ToString();
|
||
|
|
||
|
return t_Sys_Menu_Authority.GetData("[UserID]=" + UserID).Tables[0];
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|