private void AddAclGroup2(AclGroup group, JsonTreeNode treeNode) { JsonTreeNode groupNode = new JsonTreeNode(); groupNode.id = _groupNodePrefix + group.ID; groupNode.itemid = group.ID; groupNode.text = group.Name; treeNode.children.Add(groupNode); // add child groups foreach (AclGroup childGroup in group.Groups) { AddAclGroup2(childGroup, groupNode); } // add permissions foreach (AclPermission permission in group.Permissions) { JsonTreeNode permissionNode = new JsonTreeNode(); permissionNode.id = _permissionNodePrefix + permission.ID; permissionNode.itemid = permission.ID; permissionNode.text = permission.Name; groupNode.children.Add(permissionNode); } }
private bool AddUser(string group, string id) { if (groups.ContainsKey(group)) { if (!groups[group].Contains(id)) { groups[group].Add(id); var aclGroup = new AclGroup { GroupID = id, GroupName = group }; bot.MainBotData.AclGroups.InsertOnSubmit(aclGroup); bot.MainBotData.SubmitChanges(); return(true); } } return(false); }
/// <summary> /// Adds the acl group. /// </summary> /// <param name="group">The group.</param> /// <param name="treeNode">The tree node.</param> /// <returns></returns> private int AddAclGroup(AclGroup group, TreeNode treeNode) { int childrenChecked = -1; // 1 - checked, 2 - unchecked, 0 - some checked, -1 - not set TreeNode groupNode = new TreeNode(); groupNode.Value = GetTreeNodeUniqueId(_groupNodePrefix, group.ID); groupNode.Text = UtilHelper.GetResFileString(group.Name); groupNode.ShowCheckBox = true; groupNode.ImageUrl = Page.ResolveUrl("~/Apps/Profile/images/security_folder.png"); groupNode.SelectAction = TreeNodeSelectAction.Expand; treeNode.ChildNodes.Add(groupNode); // add child groups foreach (AclGroup childGroup in group.Groups) { int result = AddAclGroup(childGroup, groupNode); if (result == 2 && childrenChecked == 1) { childrenChecked = 0; } else if (result == 2 && childrenChecked == -1) { childrenChecked = 2; } else if (result == 1 && childrenChecked == -1) { childrenChecked = 1; } else if (result == 1 && childrenChecked == 2) { childrenChecked = 0; } else if (result == 0) { childrenChecked = 0; } } // add permissions foreach (AclPermission permission in group.Permissions) { TreeNode permissionNode = new TreeNode(); permissionNode.Value = GetTreeNodeUniqueId(_permissionNodePrefix, permission.ToString()); permissionNode.Text = UtilHelper.GetResFileString(permission.Name); permissionNode.SelectAction = TreeNodeSelectAction.None; permissionNode.ImageUrl = Page.ResolveUrl("~/Apps/Profile/images/security_key.png"); // check node if permission is set if (_Permission != null) { PermissionDto.RolePermissionRow[] permissionRows = (PermissionDto.RolePermissionRow[])_Permission.RolePermission.Select(String.Format("Permission='{0}'", permission.ToString())); if (permissionRows != null && permissionRows.Length > 0) { permissionNode.Checked = true; if (childrenChecked == -1) { childrenChecked = 1; } } } if (!permissionNode.Checked && childrenChecked == 1) { childrenChecked = 0; } if (!permissionNode.Checked && childrenChecked == -1) { childrenChecked = 2; } groupNode.ChildNodes.Add(permissionNode); } groupNode.Checked = childrenChecked == 1; if (childrenChecked == 0) { groupNode.Select(); groupNode.Expand(); } else { groupNode.Collapse(); } return(childrenChecked); }
private int AddAclGroup(AclGroup group, TreeNode treeNode) { int num1 = -1; TreeNode treeNode1 = new TreeNode(); treeNode1.Value = this.GetTreeNodeUniqueId("group_", group.ID); treeNode1.Text = UtilHelper.GetResFileString(group.Name); treeNode1.ShowCheckBox = new bool?(true); treeNode1.ImageUrl = this.Page.ResolveUrl("~/Apps/Customer/images/security_folder.png"); treeNode1.SelectAction = TreeNodeSelectAction.Expand; treeNode.ChildNodes.Add(treeNode1); foreach (AclGroup group1 in (CollectionBase)group.Groups) { int num2 = this.AddAclGroup(group1, treeNode1); if (num2 == 2 && num1 == 1) { num1 = 0; } else if (num2 == 2 && num1 == -1) { num1 = 2; } else if (num2 == 1 && num1 == -1) { num1 = 1; } else if (num2 == 1 && num1 == 2) { num1 = 0; } else if (num2 == 0) { num1 = 0; } } IEnumerator enumerator = group.Permissions.GetEnumerator(); try { Func <SecurityPermission, bool> func = (Func <SecurityPermission, bool>)null; RoleOverviewEditTab.DisplayClass2 cDisplayClass2 = new RoleOverviewEditTab.DisplayClass2(); while (enumerator.MoveNext()) { cDisplayClass2.permission = (AclPermission)enumerator.Current; TreeNode child = new TreeNode(); child.Value = this.GetTreeNodeUniqueId("permission_", cDisplayClass2.permission.ToString()); child.Text = UtilHelper.GetResFileString(cDisplayClass2.permission.Name); child.SelectAction = TreeNodeSelectAction.None; child.ImageUrl = this.Page.ResolveUrl("~/Apps/Customer/images/security_key.png"); if (this._Permissions != null) { IEnumerable <SecurityPermission> source = this._Permissions; if (func == null) { // ISSUE: method pointer func = new Func <SecurityPermission, bool>(cDisplayClass2.AddAclGroup); } Func <SecurityPermission, bool> predicate = func; if (Enumerable.Count <SecurityPermission>(source, predicate) > 0) { child.Checked = true; if (num1 == -1) { num1 = 1; } } } if (!child.Checked && num1 == 1) { num1 = 0; } if (!child.Checked && num1 == -1) { num1 = 2; } treeNode1.ChildNodes.Add(child); } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } treeNode1.Checked = num1 == 1; if (num1 == 0) { treeNode1.Select(); treeNode1.Expand(); } else { treeNode1.Collapse(); } return(num1); }
/// <summary> /// Check if the object is in a certain ACL group /// </summary> public bool IsInACLGroup(AclGroup group) { return(MtaServer.IsObjectInACLGroup(AclIdentifier, group.ACL)); }
private bool AddUser(string group, string id) { if (groups.ContainsKey(group)) { if (!groups[group].Contains(id)) { groups[group].Add(id); var aclGroup = new AclGroup { GroupID = id, GroupName = group }; bot.MainBotData.AclGroups.InsertOnSubmit(aclGroup); bot.MainBotData.SubmitChanges(); return true; } } return false; }