Beispiel #1
0
        /// <summary>
        /// 
        /// </summary>
        public Policy( pol.PolicyElementReadWrite policy )
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            LoadingData = true;

            _policy = policy;

            cmbRuleCombiningAlgorithm.Items.Add( Consts.Schema1.RuleCombiningAlgorithms.DenyOverrides );
            cmbRuleCombiningAlgorithm.Items.Add( Consts.Schema1.RuleCombiningAlgorithms.PermitOverrides );
            cmbRuleCombiningAlgorithm.Items.Add( Consts.Schema1.RuleCombiningAlgorithms.FirstApplicable );

            txtDescription.Text = _policy.Description;
            txtPolicyId.Text = _policy.Id;
            txtXPathVersion.Text = _policy.XPathVersion;
            cmbRuleCombiningAlgorithm.SelectedText = _policy.RuleCombiningAlgorithm;

            txtDescription.DataBindings.Add( "Text", _policy, "Description" );
            txtPolicyId.DataBindings.Add( "Text", _policy, "Id" );
            if(_policy.XPathVersion != null)
                txtXPathVersion.DataBindings.Add( "Text", _policy, "XPathVersion" );
            cmbRuleCombiningAlgorithm.DataBindings.Add( "SelectedValue", policy, "RuleCombiningAlgorithm" );

            LoadingData = false;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="apply"></param>
        public FunctionExecution( pol.ApplyBaseReadWrite apply )
        {
            _apply = apply;

            //TODO: find the function data type.
            this.Text = "[" + "dataType" + "] " + apply.FunctionId;

            foreach( inf.IExpression arg in apply.Arguments )
            {
                if( arg is pol.ApplyBaseReadWrite )
                {
                    this.Nodes.Add( new FunctionExecution( (pol.ApplyBaseReadWrite)arg ) );
                }
                else if( arg is pol.FunctionElementReadWrite )
                {
                    this.Nodes.Add( new FunctionParameter( (pol.FunctionElementReadWrite)arg ) );
                }
                else if( arg is pol.AttributeValueElementReadWrite )
                {
                    this.Nodes.Add( new AttributeValue( (pol.AttributeValueElementReadWrite)arg ) );
                }
                else if( arg is pol.AttributeDesignatorBase )
                {
                    this.Nodes.Add( new AttributeDesignator( (pol.AttributeDesignatorBase)arg ) );
                }
                else if( arg is pol.AttributeSelectorElement )
                {
                    this.Nodes.Add( new AttributeSelector( (pol.AttributeSelectorElement)arg ) );
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="obligations"></param>
        public Obligations( pol.ObligationReadWriteCollection obligations )
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            LoadingData = true;

            _obligations = obligations;

            cmbEffect.Items.Add( pol.Effect.Deny );
            cmbEffect.Items.Add( pol.Effect.Permit );

            lstAttributeAssignments.DisplayMember = "AttributeId";

            lstObligations.DisplayMember = "ObligationId";
            foreach( pol.ObligationElementReadWrite obligation in obligations )
            {
                lstObligations.Items.Add( obligation );
            }

            if( obligations.Count != 0 )
            {
                lstObligations.SelectedIndex = 0;
            }

            LoadingData = false;
        }
Beispiel #4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="target"></param>
        public Target(pol.TargetElementReadWrite target)
        {
            _target = target;

            this.Text = "Target";
            this.SelectedImageIndex = 4;
            this.ImageIndex = 4;

            FillTargetItems(_target.Subjects);
            FillTargetItems(_target.Resources);
            FillTargetItems(_target.Actions);
        }
Beispiel #5
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="policyDocument"></param>
        public PolicyDocument( pol.PolicyDocumentReadWrite policyDocument )
        {
            _policyDocument = policyDocument;

            this.Text = "Policy Document";

            if( _policyDocument.Policy != null )
            {
                this.Nodes.Add( new Policy( _policyDocument.Policy ) );
            }
            else if( _policyDocument.PolicySet != null )
            {
                this.Nodes.Add( new PolicySet( _policyDocument.PolicySet ) );
            }
            this.Expand();
        }
Beispiel #6
0
        /// <summary>
        /// 
        /// </summary>
        public Condition( pol.ConditionElementReadWrite condition )
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            _condition = condition;

            tvwCondition.Nodes.Add( new TreeNodes.FunctionExecution( condition ) );
            tvwCondition.ExpandAll();

            foreach( FieldInfo field in typeof(Consts.Schema1.InternalDataTypes).GetFields() )
            {
                cmbDataType.Items.Add( field.GetValue( null ) );
            }
            foreach( FieldInfo field in typeof(Consts.Schema1.InternalFunctions).GetFields() )
            {
                cmbInternalFunctions.Items.Add( field.GetValue( null ) );
            }
        }
Beispiel #7
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="rule"></param>
        public Rule( pol.RuleElementReadWrite rule )
        {
            _rule = rule;

            if( _rule.Target == null )
            {
                this.Nodes.Add( new AnyTarget() );
            }
            else
            {
                this.Nodes.Add( new Target( _rule.Target ) );
            }

            if( _rule.Condition != null )
            {
                this.Nodes.Add( new Condition( _rule.Condition ) );
            }

            this.Text = string.Format( "Rule ({0})", rule.Id );
        }
Beispiel #8
0
        /// <summary>
        /// 
        /// </summary>
        public Rule( pol.RuleElementReadWrite rule )
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            _rule = rule;

            LoadingData = true;

            cmbEffect.Items.Add( pol.Effect.Deny );
            cmbEffect.Items.Add( pol.Effect.Permit );

            txtDescription.Text = _rule.Description;
            txtPolicyId.Text = _rule.Id;
            cmbEffect.SelectedIndex = cmbEffect.FindStringExact( _rule.Effect.ToString() );

            txtDescription.DataBindings.Add( "Text", _rule, "Description" );
            txtPolicyId.DataBindings.Add( "Text", _rule, "Id" );
            cmbEffect.DataBindings.Add( "SelectedValue", _rule, "Effect" );

            LoadingData = false;
        }
Beispiel #9
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="policySet"></param>
        public PolicySet( pol.PolicySetElementReadWrite policySet )
        {
            _policySet = policySet;

            this.Text = string.Format( "PolicySet ( {0} )", _policySet.Id );

            if( _policySet.Target == null )
            {
                this.Nodes.Add( new AnyTarget() );
            }
            else
            {
                this.Nodes.Add( new Target( _policySet.Target ) );
            }

            foreach( object policy in _policySet.Policies )
            {
                if( policy is pol.PolicyElementReadWrite )
                {
                    this.Nodes.Add( new Policy( (pol.PolicyElementReadWrite)policy ) );
                }
                else if( policy is pol.PolicySetElementReadWrite )
                {
                    this.Nodes.Add( new PolicySet( (pol.PolicySetElementReadWrite)policy ) );
                }
                else if( policy is pol.PolicyIdReferenceElementReadWrite )
                {
                    this.Nodes.Add( new PolicyIdReference( (pol.PolicyIdReferenceElementReadWrite)policy ) );
                }
                else if( policy is pol.PolicySetIdReferenceElementReadWrite )
                {
                    this.Nodes.Add( new PolicySetIdReference( (pol.PolicySetIdReferenceElementReadWrite)policy ) );
                }
            }

            this.Nodes.Add( new Obligations( _policySet.Obligations ) );
            this.Expand();
        }
Beispiel #10
0
        /// <summary>
        /// Creates a new runtime policy evaluation.
        /// </summary>
        /// <param name="policy">The policy document.</param>
        public Policy(pol.PolicyElement policy)
        {
            if (policy == null) throw new ArgumentNullException("policy");
            _policy = policy;

            // Chechs the target for this policy.
            if (policy.Target != null)
            {
                _target = new Target((pol.TargetElement)policy.Target);

                // Load all the resources for this policy.
                foreach (ResourceElement resource in policy.Target.Resources.ItemsList)
                {
                    foreach (ResourceMatchElement rmatch in resource.Match)
                    {
                        if (!_allResources.Contains(rmatch.AttributeValue.Contents))
                        {
                            _allResources.Add(rmatch.AttributeValue.Contents);
                        }
                    }
                }
            }

            // Load all the Rules and creates a new runtime rule.
            foreach (pol.RuleElement rule in policy.Rules)
            {
                var ruleEv = new Rule(rule);
                _rules.Add(ruleEv);

                foreach (string rName in ruleEv.AllResources)
                {
                    if (!_allResources.Contains(rName))
                    {
                        _allResources.Add(rName);
                    }
                }
            }
        }
Beispiel #11
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="policy"></param>
        public Policy( pol.PolicyElementReadWrite policy )
        {
            _policy = policy;

            this.Text = string.Format( "Policy ( {0} )", policy.Id );

            if( policy.Target == null )
            {
                this.Nodes.Add( new AnyTarget() );
            }
            else
            {
                this.Nodes.Add( new Target( policy.Target ) );
            }

            foreach( pol.RuleElementReadWrite rule in policy.Rules )
            {
                this.Nodes.Add( new Rule( rule ) );
            }

            this.Nodes.Add( new Obligations( _policy.Obligations ) );
            this.Expand();
        }
Beispiel #12
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="attributeValue"></param>
        public AttributeValue( pol.AttributeValueElementReadWrite attributeValue )
        {
            _attributeValue = attributeValue;

            this.Text = "[" + attributeValue.DataType + "] " + attributeValue.Contents;
        }
Beispiel #13
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="obligations"></param>
        public Obligations( pol.ObligationReadWriteCollection obligations )
        {
            _obligations = obligations;

            this.Text = "Obligations";
        }
Beispiel #14
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="function"></param>
        public FunctionParameter( pol.FunctionElementReadWrite function )
        {
            _function = function;

            this.Text = "Function: " + _function.FunctionId;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="attributeDesignator"></param>
        public AttributeDesignator( pol.AttributeDesignatorBase attributeDesignator )
        {
            _attributeDesignator = attributeDesignator;

            this.Text = "[" + attributeDesignator.DataType + "]:" + attributeDesignator.AttributeId;
        }
Beispiel #16
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="policyIdReference"></param>
        public PolicyIdReference( pol.PolicyIdReferenceElementReadWrite policyIdReference )
        {
            _policyIdReference = policyIdReference;

            this.Text = string.Format( "PolicyIdReference: {0}", policyIdReference.PolicyId );
        }
Beispiel #17
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="attributeSelector"></param>
        public AttributeSelector( pol.AttributeSelectorElement attributeSelector )
        {
            _attributeSelector = attributeSelector;

            this.Text = "XPath: " + attributeSelector.RequestContextPath;
        }
Beispiel #18
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="condition"></param>
        public Condition( pol.ConditionElementReadWrite condition )
        {
            _condition = condition;

            this.Text = "Condition";
        }