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);
            }
        }
Example #2
0
        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);
        }
Example #5
0
 /// <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;
        }