示例#1
0
        private void EditMI_Click(object sender, EventArgs e)
        {
            try
            {
                FileSystemAccessRule  fileSystemRule  = SelectedTag as FileSystemAccessRule;
                ApplicationAccessRule applicationRule = SelectedTag as ApplicationAccessRule;

                if (fileSystemRule == null && applicationRule == null)
                {
                    return;
                }

                if (fileSystemRule != null)
                {
                    applicationRule                   = new ApplicationAccessRule();
                    applicationRule.RuleType          = ApplicationAccessRule.Convert(fileSystemRule.AccessControlType);
                    applicationRule.Right             = GetEffectiveRight(fileSystemRule);
                    applicationRule.IdentityReference = fileSystemRule.IdentityReference;
                }

                if (!new AccessRuleDlg().ShowDialog(applicationRule))
                {
                    return;
                }

                UpdateItem(ItemsLV.SelectedItems[0], applicationRule);
                AdjustColumns();
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, System.Reflection.MethodBase.GetCurrentMethod(), exception);
            }
        }
示例#2
0
        /// <summary>
        /// Returns the rules in the control.
        /// </summary>
        public IList <ApplicationAccessRule> GetAccessRules()
        {
            if (ItemsLV.Items.Count == 1)
            {
                if (ItemsLV.Items[0].Text == Instructions)
                {
                    return(new ApplicationAccessRule[0]);
                }
            }

            List <ApplicationAccessRule> rules = new List <ApplicationAccessRule>();

            for (int ii = 0; ii < ItemsLV.Items.Count; ii++)
            {
                ApplicationAccessRule applicationRule = ItemsLV.Items[ii].Tag as ApplicationAccessRule;

                if (applicationRule != null)
                {
                    rules.Add(applicationRule);
                    continue;
                }

                FileSystemAccessRule fileSystemRule = ItemsLV.Items[ii].Tag as FileSystemAccessRule;

                if (fileSystemRule != null)
                {
                    applicationRule                   = new ApplicationAccessRule();
                    applicationRule.RuleType          = ApplicationAccessRule.Convert(fileSystemRule.AccessControlType);
                    applicationRule.Right             = GetEffectiveRight(fileSystemRule);
                    applicationRule.IdentityReference = fileSystemRule.IdentityReference;
                    rules.Add(applicationRule);
                    continue;
                }
            }

            return(rules.ToArray());
        }