public ActionResult AddPolicy(policyData vData, int id, bool isDoc)
        {
            vData.IsDocumentLink = isDoc;
            if (isDoc)
                vData.PolicyDocument = new PolicyDocumentEntity(id);
            else
                vData.PolicyLink = new PolicyLinkEntity(id);

            return View(vData);
        }
        public ActionResult AddValue(policyData vData, int id, bool literal, int linkId)
        {
            AttributeValueEntity ave = new AttributeValueEntity();
            ave.AttributeMatchId = id;
            ave.Literal = literal;

            AttributeValueCollection maxColl = new AttributeValueCollection();
            PredicateExpression pe = new PredicateExpression(AttributeValueFields.AttributeMatchId == id);
            object maxObj = maxColl.GetScalar(AttributeValueFieldIndex.Order, null, AggregateFunction.Max,pe);
            if (maxObj != null && maxObj != DBNull.Value)
                ave.Order = (int)maxObj + 1;
            else
                ave.Order = 0;

            if (literal)
                ave.Value = string.Empty;
            else
                ave.Value = null;

            ave.Save();

            return RedirectToAction("EditMatch", new { id = id, linkId = linkId });
        }
        public ActionResult DeletePolicy(policyData vData, int id, int linkId)
        {
            vData.PolicyLink = new PolicyLinkEntity(id);
            DeletePolicyLink(vData.PolicyLink);

            return RedirectToAction("EditPolicySet", new { id = linkId });
        }
        private void CreatePolicy(policyData vData, int? id, bool set,bool isLibrary)
        {
            vData.Policy = new PolicyEntity();
            vData.Policy.LibraryId = vData.Library.Id;
            vData.Policy.Description = set ? "new policy set" : "new policy";
            vData.Policy.Set = set;
            vData.Policy.IsLibrary = isLibrary;
            vData.Policy.Target.Description = string.Empty;

            vData.PolicyLink = new PolicyLinkEntity();
            vData.PolicyLink.Policy = vData.Policy;

            if (id.HasValue)
            {
                vData.PolicyLink.ParentId = id;

                PolicyLinkCollection maxColl = new PolicyLinkCollection();
                PredicateExpression pe = new PredicateExpression(PolicyLinkFields.ParentId == id);
                object maxObj = maxColl.GetScalar(PolicyLinkFieldIndex.Order, null, AggregateFunction.Max, pe);
                if (maxObj != null && maxObj != DBNull.Value)
                    vData.PolicyLink.Order = (int)maxObj + 1;
                else
                    vData.PolicyLink.Order = 0;
            }

            CombineModeCollection cmcoll = new CombineModeCollection();
            cmcoll.GetMulti((CombineModeFields.Name == "deny-overrides"));
            vData.Policy.CombineModeId = cmcoll[0].Id;

            vData.Policy.Save(true);
        }
        public ActionResult UpdateAttributeValue(policyData vData, int id, int valueId, int linkId, FormCollection collection)
        {
            AttributeValueEntity attrValue = new AttributeValueEntity(valueId);

            if (attrValue.Literal)
            {
                attrValue.Value = collection["Literal"];
            }
            else
            {
                if (collection["LookupId"] != null && collection["LookupId"] != string.Empty)
                    attrValue.AttributeId = int.Parse(collection["LookupId"]);
                else
                    attrValue.AttributeId = null;
            }

            attrValue.Save();

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction("EditMatch", new { id = id, linkId = linkId });
        }
        public ActionResult SetConditionOperator(policyData vData, int id, int linkId, FormCollection collection)
        {
            vData.Condition = new DecisionNodeEntity(id);
            vData.Condition.CombineAnd = collection["operator"] == "AND" ? true : false;
            vData.Condition.Save();

            return RedirectToAction("EditCondition", new { id = id, linkId = linkId });
        }
        public ActionResult ReferencePolicy(policyData vData,int id, bool isDoc, FormCollection collection)
        {
            int parse;
            if (int.TryParse(collection["libraryPolicyId"], out parse) && parse > 0)
            {
                PolicyEntity copy = duplicator.dupPolicy(parse);

                vData.PolicyLink = new PolicyLinkEntity();
                vData.PolicyLink.PolicyId = copy.Id;

                if (isDoc)
                {
                    vData.PolicyDocument = new PolicyDocumentEntity(id);
                    vData.PolicyDocument.PolicyLink = vData.PolicyLink;
                    vData.PolicyDocument.Save(true);

                    return RedirectToAction("EditPolicyDoc", new { id = id });
                }
                else
                {
                    vData.PolicyLink.ParentId = id;

                    PolicyLinkCollection maxColl = new PolicyLinkCollection();
                    PredicateExpression pe = new PredicateExpression(PolicyLinkFields.ParentId == id);
                    object maxObj = maxColl.GetScalar(PolicyLinkFieldIndex.Order, null, AggregateFunction.Max, pe);
                    if (maxObj != null && maxObj != DBNull.Value)
                        vData.PolicyLink.Order = (int)maxObj + 1;
                    else
                        vData.PolicyLink.Order = 0;

                    vData.PolicyLink.Save();

                    return RedirectToAction("EditPolicySet", new { id = id });
                }
            }
            else
                return RedirectToAction("AddPolicy", new { id = id, isDoc = isDoc });
        }
        public ActionResult PolicyOrder(policyData vData, int id, FormCollection collection)
        {
            PolicyLinkEntity policyLink = new PolicyLinkEntity(id);
            PolicyLinkCollection coll = new PolicyLinkCollection();

            PredicateExpression pe = new PredicateExpression(PolicyLinkFields.Id != policyLink.Id);
            pe.Add(PolicyLinkFields.ParentId == policyLink.ParentId);
            SortExpression se = null;

            if (collection["up"] != null)
            {
                // Find all categories with display index less than ours.
                pe.Add(PolicyLinkFields.Order <= policyLink.Order);

                // Order by display index, highest first.
                se = new SortExpression(PolicyLinkFields.Order | SortOperator.Descending);
            }
            else
            {
                // Find all categories with display index greater than ours.
                pe.Add(PolicyLinkFields.Order >= policyLink.Order);

                // Order by display index, lowest first.
                se = new SortExpression(PolicyLinkFields.Order | SortOperator.Ascending);
            }

            // Swap with closest one.
            if (coll.GetMulti(pe, 1, se) && coll.Count > 0)
            {
                int temp = coll[0].Order;
                coll[0].Order = policyLink.Order;
                policyLink.Order = temp;

                policyLink.Save();
                coll.SaveMulti();
            }

            return RedirectToAction("EditPolicySet", new { id = policyLink.ParentId });
        }
        public ActionResult EditPolicy(policyData vData, int id)
        {
            vData.PolicyLink = new PolicyLinkEntity(id);

            SortExpression se = new SortExpression(RuleFields.Order | SortOperator.Ascending);
            PrefetchPath pp = new PrefetchPath(EntityType.PolicyEntity);
            pp.Add(PolicyEntity.PrefetchPathRule, 0, null, null, se);
            vData.Policy = new PolicyEntity(vData.PolicyLink.PolicyId,pp);

            return View(vData);
        }
Ejemplo n.º 10
0
        public ActionResult EditMatch(policyData vData, int id, int linkId)
        {
            vData.PolicyLink = new PolicyLinkEntity(linkId);

            SortExpression se = new SortExpression(AttributeValueFields.Order | SortOperator.Ascending);
            PrefetchPath pp = new PrefetchPath(EntityType.DecisionNodeEntity);
            pp.Add(DecisionNodeEntity.PrefetchPathAttributeValue, 0, null, null, se);
            vData.DecisionNode = new DecisionNodeEntity(id,pp);

            ViewData["title"] = "edit match";

            //            if (vData.DecisionNode.Parent.Rule.Count > 0)
                ViewData["selectList"] = vData.allAttributes(vData.DecisionNode.AttributeId);
            //else
            //    ViewData["selectList"] = vData.subjectAttributes(vData.DecisionNode.AttributeId);

            return View(vData);
        }
Ejemplo n.º 11
0
        public ActionResult DownloadPolicyDoc(policyData vData, int id)
        {
            vData.PolicyDocument = new PolicyDocumentEntity(id);

            string path = string.Format("~/exports/{0}.xml", Path.GetRandomFileName());
            string mappedPath = Server.MapPath(path);
            xmlGenerate gen = new xmlGenerate();
            string xml = gen.generate(vData.PolicyDocument);

            StreamWriter sw = new StreamWriter(mappedPath);
            sw.Write(xml);
            sw.Close();

            return File(mappedPath, "text/xml", vData.PolicyDocument.Name + ".xml");
        }
Ejemplo n.º 12
0
        public ActionResult DeleteValue(policyData vData, int id, int valueId, int linkId)
        {
            AttributeValueEntity ave = new AttributeValueEntity(valueId);
            ave.Delete();

            return RedirectToAction("EditMatch", new { id = id, linkId = linkId });
        }
Ejemplo n.º 13
0
        public ActionResult DeleteRule(policyData vData, int id, int linkId)
        {
            vData.Rule = new RuleEntity(id);
            DeleteDecisionNode(vData.Rule.Condition);

            return RedirectToAction("EditPolicy",new { id = linkId });
        }
Ejemplo n.º 14
0
        public ActionResult DeletePolicyFromLib(policyData vData, int id)
        {
            try
            {
                if (!DeletePolicyFromLib(id))
                    TempData["message"] = "you can't delete this policy - it is in use";
            }
            catch (Exception ex)
            {
                TempData["message"] = "you can't delete this policy - it is in use";
            }

            return RedirectToAction("Library");
        }
Ejemplo n.º 15
0
        public ActionResult DeletePolicyDoc(policyData vData, int id)
        {
            vData.PolicyDocument = new PolicyDocumentEntity(id);

            DeletePolicyDoc(vData.PolicyDocument);

            return RedirectToAction("Index");
        }
Ejemplo n.º 16
0
        public ActionResult PolicyDocDetailUpdate(policyData vData, int id, FormCollection collection)
        {
            vData.PolicyDocument = new PolicyDocumentEntity(id);
            if (vData.PolicyDocument.IsNew)
                vData.PolicyDocument.LibraryId = vData.Library.Id;

            vData.PolicyDocument.Name = collection["name"];
            vData.PolicyDocument.Save(true);

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction("EditPolicyDoc", new { id = vData.PolicyDocument.Id });
        }
Ejemplo n.º 17
0
        public ActionResult EditPolicyDoc(policyData vData, int id)
        {
            vData.PolicyDocument = new PolicyDocumentEntity(id);
            if (!vData.PolicyDocument.IsNew)
                vData.Policy = vData.PolicyDocument.PolicyLink.Policy;

            return View(vData);
        }
Ejemplo n.º 18
0
        public ActionResult EditPolicyFromLib(policyData vData, int id)
        {
            PredicateExpression pe = new PredicateExpression(PolicyLinkFields.ParentId == DBNull.Value);
            pe.Add(PolicyLinkFields.PolicyId == id);
            pe.Add(new FieldCompareSetPredicate(PolicyLinkFields.Id, PolicyDocumentFields.PolicyLinkId, SetOperator.In, null, true));

            PolicyLinkCollection plcoll = new PolicyLinkCollection();
            if (plcoll.GetMulti(pe) && plcoll.Count > 0)
                vData.PolicyLink = plcoll[0];
            else
            {
                vData.PolicyLink = new PolicyLinkEntity();
                vData.PolicyLink.PolicyId = id;
                vData.PolicyLink.Save();
            }

            return RedirectToAction("EditPolicy", new { id = vData.PolicyLink.Id });
        }
Ejemplo n.º 19
0
        public ActionResult PolicySetDetailUpdate(policyData vData, int id, int id2, FormCollection collection)
        {
            vData.PolicySet = new PolicyEntity(id);
            vData.PolicySet.Description = collection["description"];
            vData.PolicySet.CombineModeId = int.Parse(collection["combineModeId"]);
            vData.PolicySet.Save(true);

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction("EditPolicySet", new { id = id2 });
        }
Ejemplo n.º 20
0
        public ActionResult EditPolicySet(policyData vData, int id)
        {
            SortExpression se = new SortExpression(PolicyLinkFields.Order | SortOperator.Ascending);
            PrefetchPath pp = new PrefetchPath(EntityType.PolicyLinkEntity);
            pp.Add(PolicyLinkEntity.PrefetchPathChildren, 0, null, null, se);
            vData.PolicyLink = new PolicyLinkEntity(id,pp);
            vData.PolicySet = vData.PolicyLink.Policy;

            return View(vData);
        }
Ejemplo n.º 21
0
        public ActionResult RuleOrder(policyData vData, int id, int linkId, FormCollection collection)
        {
            RuleEntity rule = new RuleEntity(id);
            RuleCollection coll = new RuleCollection();

            PredicateExpression pe = new PredicateExpression(RuleFields.Id != rule.Id);
            pe.Add(RuleFields.PolicyId == rule.PolicyId);
            SortExpression se = null;

            if (collection["up"] != null)
            {
                // Find all categories with display index less than ours.
                pe.Add(RuleFields.Order <= rule.Order);

                // Order by display index, highest first.
                se = new SortExpression(RuleFields.Order | SortOperator.Descending);
            }
            else
            {
                // Find all categories with display index greater than ours.
                pe.Add(RuleFields.Order >= rule.Order);

                // Order by display index, lowest first.
                se = new SortExpression(RuleFields.Order | SortOperator.Ascending);
            }

            // Swap with closest one.
            if (coll.GetMulti(pe, 1, se) && coll.Count > 0)
            {
                int temp = coll[0].Order;
                coll[0].Order = rule.Order;
                rule.Order = temp;

                rule.Save();
                coll.SaveMulti();
            }

            return RedirectToAction("EditPolicy", new { id = linkId });
        }
Ejemplo n.º 22
0
        public ActionResult EditRule(policyData vData, int id, int linkId)
        {
            vData.PolicyLink = new PolicyLinkEntity(linkId);

            SortExpression se = new SortExpression(DecisionNodeFields.Order | SortOperator.Ascending);
            PrefetchPath pp = new PrefetchPath(EntityType.RuleEntity);
            pp.Add(RuleEntity.PrefetchPathCondition).SubPath.Add(DecisionNodeEntity.PrefetchPathChildren, 0, null, null, se);
            vData.Rule = new RuleEntity(id, pp);
            vData.Condition = vData.Rule.Condition;

            return View(vData);
        }
Ejemplo n.º 23
0
        public ActionResult SetAttribute(policyData vData, int id, int id2, int linkId, FormCollection collection)
        {
            vData.DecisionNode = new DecisionNodeEntity(id);
            if (vData.DecisionNode.IsNew)
            {
                vData.DecisionNode.Type = constants.attributeMatchType;

                DecisionNodeCollection maxColl = new DecisionNodeCollection();
                PredicateExpression pe = new PredicateExpression(DecisionNodeFields.ParentId == id2);
                object maxObj = maxColl.GetScalar(DecisionNodeFieldIndex.Order, null, AggregateFunction.Max, pe);
                if (maxObj != null && maxObj != DBNull.Value)
                    vData.DecisionNode.Order = (int)maxObj + 1;
                else
                    vData.DecisionNode.Order = 0;

                AttributeValueEntity ave = new AttributeValueEntity();
                ave.AttributeMatch = vData.DecisionNode;
                ave.Literal = true;
                ave.Value = string.Empty;
            }
            vData.DecisionNode.ParentId = id2;
            vData.DecisionNode.AttributeId = int.Parse(collection["AttributeId"]);

            if (vData.DecisionNode.Attribute.AttributeType.Name == "uri")
                vData.DecisionNode.Extra = collection["uriExtra"];
            else if (vData.DecisionNode.Attribute.AttributeType.Name == "param")
                vData.DecisionNode.Extra = collection["extra"];
            else
                vData.DecisionNode.Extra = string.Empty;

            vData.DecisionNode.Save(true);

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction("EditMatch", new { id = vData.DecisionNode.Id, linkId = linkId });
        }
Ejemplo n.º 24
0
        public ActionResult EditTarget(policyData vData, int id, int linkId)
        {
            vData.PolicyLink = new PolicyLinkEntity(linkId);

            SortExpression se = new SortExpression(DecisionNodeFields.Order | SortOperator.Ascending);
            PrefetchPath pp = new PrefetchPath(EntityType.DecisionNodeEntity);
            pp.Add(DecisionNodeEntity.PrefetchPathChildren, 0, null, null, se);
            vData.Condition = new DecisionNodeEntity(id,pp);

            ViewData["title"] = "edit target condition";

            return View(vData);
        }
Ejemplo n.º 25
0
        public ActionResult SetRuleEffect(policyData vData, int id, int linkId, FormCollection collection)
        {
            vData.Rule = new RuleEntity(id);
            vData.Rule.EffectId = int.Parse(collection["EffectId"]);
            vData.Rule.Save(true);

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction("EditRule", new { id = vData.Rule.Id, linkId = linkId });
        }
Ejemplo n.º 26
0
        public ActionResult Library(policyData vData,int? id)
        {
            if (id.HasValue)
                vData.Library = new LibraryEntity(id.Value);

            return View(vData);
        }
Ejemplo n.º 27
0
        public ActionResult ValueOrder(policyData vData, int id, int id2, int linkId, FormCollection collection)
        {
            AttributeValueEntity attrValue = new AttributeValueEntity(id2);
            AttributeValueCollection coll = new AttributeValueCollection();

            PredicateExpression pe = new PredicateExpression(AttributeValueFields.Id != attrValue.Id);
            pe.Add(AttributeValueFields.AttributeMatchId == id);
            SortExpression se = null;

            if (collection["up"] != null)
            {
                // Find all categories with display index less than ours.
                pe.Add(AttributeValueFields.Order <= attrValue.Order);

                // Order by display index, highest first.
                se = new SortExpression(AttributeValueFields.Order | SortOperator.Descending);
            }
            else
            {
                // Find all categories with display index greater than ours.
                pe.Add(AttributeValueFields.Order >= attrValue.Order);

                // Order by display index, lowest first.
                se = new SortExpression(AttributeValueFields.Order | SortOperator.Ascending);
            }

            // Swap with closest one.
            if (coll.GetMulti(pe, 1, se) && coll.Count > 0)
            {
                int temp = coll[0].Order;
                coll[0].Order = attrValue.Order;
                attrValue.Order = temp;

                attrValue.Save();
                coll.SaveMulti();
            }

            return RedirectToAction("EditMatch", new { id = id, linkId = linkId });
        }
Ejemplo n.º 28
0
        public ActionResult PolicyDetailUpdate(policyData vData, int id, FormCollection collection)
        {
            vData.PolicyLink = new PolicyLinkEntity(id);
            vData.Policy = vData.PolicyLink.Policy;
            vData.Policy.Description = collection["description"];
            vData.Policy.CombineModeId = int.Parse(collection["combineModeId"]);
            vData.Policy.Save(true);

            TempData["message"] = policyData.detailsSaved;

            return RedirectToAction(GetPolicyAction(vData.Policy), new { id = vData.PolicyLink.Id });
        }
Ejemplo n.º 29
0
        public ActionResult ClearPolicyDoc(policyData vData, int id)
        {
            vData.PolicyDocument = new PolicyDocumentEntity(id);
            vData.PolicyLink = vData.PolicyDocument.PolicyLink;
            vData.PolicyDocument.PolicyLinkId = null;
            vData.PolicyDocument.Save();

            if (!vData.PolicyLink.IsNew)
                DeletePolicyLink(vData.PolicyLink);

            return RedirectToAction("EditPolicyDoc", new { id = id });
        }
Ejemplo n.º 30
0
        public ActionResult DeleteDecisionNode(policyData vData, int id, int linkId)
        {
            vData.PolicyLink = new PolicyLinkEntity(linkId);
            vData.DecisionNode = new DecisionNodeEntity(id);

            string redirectAction;
            int redirectId;
            if (!vData.DecisionNode.ParentId.HasValue)
            {
                redirectAction = GetPolicyAction(vData.PolicyLink.Policy);
                redirectId = vData.PolicyLink.Id;
            }
            else if (vData.DecisionNode.Parent.ParentId.HasValue)
            {
                // This is a sub-condition rather than a top-level target condition or rule condition.
                redirectAction = "EditCondition";
                redirectId = vData.DecisionNode.ParentId.Value;
            }
            else if (vData.DecisionNode.Parent.TargetCondition.Count > 0)
            {
                redirectAction = "EditCondition";
                redirectId = vData.DecisionNode.Parent.Id;
            }
            else
            {
                redirectAction = "EditRule";
                redirectId = vData.DecisionNode.Parent.Rule[0].Id;
            }

            DeleteDecisionNode(vData.DecisionNode);

            return RedirectToAction(redirectAction, new { id = redirectId, linkId = linkId });
        }