// 初始化全部对象节点的权限信息 // 本函数应当在InitialUserRecordCache()后调用, 因为要用到用户记录信息 int InitialObjRights(TreeNode parent, out string strError) { strError = ""; Debug.Assert(parent != null, ""); int i; int nRet; ObjRight objright = new ObjRight(); string strDatabaseObject = TreeViewUtil.GetPath(parent, '/'); for(i=0;i<this.m_aUserName.Count;i++) { string strUserName = (string)this.m_aUserName[i]; Debug.Assert(strUserName != "", "用户名不能为空"); string strRights = ""; nRet = GetObjectRights( this.ServerUrl, strUserName, strDatabaseObject, out strRights, out strError); if (nRet == -1) return -1; RightLine line = new RightLine(); line.UserName = strUserName; line.Rights = strRights; objright.RightLines.Add(line); } parent.Tag = objright; // 递归 for(i=0;i<parent.Nodes.Count;i++) { TreeNode child = parent.Nodes[i]; nRet = InitialObjRights(child, out strError); if (nRet == -1) return -1; } return 0; }
// 对于当前右侧listview, 收集修改过的权限值 int CollectChangedRights() { if (m_strCurDatabaseObject == "") return 0; TreeNode node = TreeViewUtil.GetTreeNode(this.treeView_objects, m_strCurDatabaseObject); if (node == null) return -1; ObjRight objright = (ObjRight)node.Tag; if (objright == null) { objright = new ObjRight(); node.Tag = objright; } // 观察listview中是否有修改过的事项 for(int i=0;i<this.listView_usersRights.Items.Count;i++) { string strUserName = this.listView_usersRights.Items[i].Text; string strRights = this.listView_usersRights.Items[i].SubItems[1].Text; // 找到旧rights string strOldRights = objright.GetRights(strUserName); if (strOldRights != strRights) objright.SetRights(strUserName, strRights); } return 0; }
/// <summary> /// Initializes a new instance of the structure. /// </summary> public Right(ObjRight objRight) { View = objRight.View; Control = objRight.Control; }
// 把权限修改信息放入树对象所附的信息对象中 void SetRights(string strDatabaseObject, string strUserName, string strRights) { TreeNode node = TreeViewUtil.GetTreeNode(this.treeView_objects, strDatabaseObject); if (node == null) { Debug.Assert(false, ""); return; } ObjRight objright = (ObjRight)node.Tag; if (objright == null) { objright = new ObjRight(); node.Tag = objright; } objright.SetRights(strUserName, strRights); }
/// <summary> /// Initializes a new instance of the structure. /// </summary> public EntityRights(ObjRight objRight) { ViewRight = objRight.View; ControlRight = objRight.Control; }