public override void Validate() { base.Validate(); DlpPolicyMetaData dlpPolicyMetaData = DlpPolicyParser.ParseDlpPolicyInstance(this.taskObject.TargetItem.TransportRulesXml); if (this.taskObject.Fields.IsModified("State")) { dlpPolicyMetaData.State = this.taskObject.State; } if (this.taskObject.Fields.IsModified("Mode")) { dlpPolicyMetaData.Mode = this.taskObject.Mode; } if (this.taskObject.TargetItem.IsModified(ADObjectSchema.Name)) { dlpPolicyMetaData.Name = this.taskObject.TargetItem.Name; } if (this.taskObject.Fields.IsModified("Description")) { dlpPolicyMetaData.Description = this.taskObject.Description; } ADComplianceProgram adcomplianceProgram = dlpPolicyMetaData.ToAdObject(); this.taskObject.TargetItem.State = adcomplianceProgram.State; this.taskObject.TargetItem.Name = adcomplianceProgram.Name; this.taskObject.TargetItem.Description = adcomplianceProgram.Description; this.taskObject.TargetItem.TransportRulesXml = adcomplianceProgram.TransportRulesXml; }
public static byte[] SerializeDlpPolicyInstance(DlpPolicyMetaData dlpPolicyMetaData) { byte[] result; using (MemoryStream memoryStream = new MemoryStream()) { XElement xelement = DlpPolicyParser.CreateDlpPolicyXelement(dlpPolicyMetaData, false); xelement.Save(memoryStream); result = memoryStream.ToArray(); } return(result); }
private static XElement CreateDlpPolicyXelement(DlpPolicyMetaData dlpPolicyMetaData, bool includePolicyCommands = false) { XName name = XName.Get("dlpPolicy"); object[] array = new object[10]; array[0] = new XAttribute(XName.Get("version"), dlpPolicyMetaData.Version); array[1] = new XAttribute(XName.Get("state"), dlpPolicyMetaData.State); array[2] = new XAttribute(XName.Get("mode"), dlpPolicyMetaData.Mode); array[3] = new XAttribute(XName.Get("id"), dlpPolicyMetaData.ImmutableId); array[4] = new XElement(XName.Get("name"), dlpPolicyMetaData.Name); array[5] = new XElement(XName.Get("contentVersion"), dlpPolicyMetaData.ContentVersion); array[6] = new XElement(XName.Get("publisherName"), dlpPolicyMetaData.PublisherName); array[7] = new XElement(XName.Get("description"), dlpPolicyMetaData.Description); array[8] = new XElement(XName.Get("keywords"), from keyword in dlpPolicyMetaData.Keywords select new XElement(XName.Get("keyword"), keyword)); array[9] = new XElement(XName.Get("policyCommands"), from commandBlock in includePolicyCommands ? dlpPolicyMetaData.PolicyCommands : new List <string>() select new XElement(XName.Get("commandBlock"), new XCData(commandBlock))); return(new XElement(name, array)); }
public static void AddTenantDlpPolicy(IConfigDataProvider dataSession, DlpPolicyMetaData dlpPolicy, string organizationParameterValue, CmdletRunner cmdletRunner, out IEnumerable <PSObject> results) { results = null; ADComplianceProgram adcomplianceProgram = dlpPolicy.ToAdObject(); ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, DlpUtils.TenantDlpPoliciesCollectionName); adcomplianceProgram.OrganizationId = dlpPolicyCollection.OrganizationId; adcomplianceProgram.SetId(dlpPolicyCollection.Id.GetChildId(dlpPolicy.Name)); dataSession.Save(adcomplianceProgram); IEnumerable <string> enumerable = Utils.AddOrganizationScopeToCmdlets(dlpPolicy.PolicyCommands, organizationParameterValue); string domainController = null; ADSessionSettings sessionSettings = null; MessagingPoliciesSyncLogDataSession messagingPoliciesSyncLogDataSession = dataSession as MessagingPoliciesSyncLogDataSession; if (messagingPoliciesSyncLogDataSession != null) { domainController = messagingPoliciesSyncLogDataSession.LastUsedDc; sessionSettings = messagingPoliciesSyncLogDataSession.SessionSettings; } try { foreach (string cmdlet in enumerable) { cmdletRunner.RunCmdlet(cmdlet, true); } } catch (ParseException e) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e); } catch (RuntimeException e2) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e2); } catch (CmdletExecutionException e3) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e3); } }
internal static DlpPolicyMetaData ParseDlpPolicyInstance(string data) { DlpPolicyMetaData result; try { XElement root = XDocument.Parse(data).Root; DlpPolicyMetaData dlpPolicyMetaData = new DlpPolicyMetaData(); dlpPolicyMetaData.Version = root.Attribute("version").Value.Trim(); dlpPolicyMetaData.State = (RuleState)Enum.Parse(typeof(RuleState), root.Attribute("state").Value.Trim()); dlpPolicyMetaData.Mode = (RuleMode)Enum.Parse(typeof(RuleMode), root.Attribute("mode").Value.Trim()); dlpPolicyMetaData.ImmutableId = ((root.Attribute("id") == null) ? Guid.Empty : Guid.Parse(root.Attribute("id").Value.Trim())); dlpPolicyMetaData.ContentVersion = root.Element("contentVersion").Value.Trim(); dlpPolicyMetaData.PublisherName = root.Element("publisherName").Value.Trim(); dlpPolicyMetaData.Name = root.Element("name").Value.Trim(); dlpPolicyMetaData.Description = root.Element("description").Value.Trim(); dlpPolicyMetaData.Keywords = (from keyword in root.Element("keywords").Elements("keyword") select keyword.Value.Trim()).ToList <string>(); dlpPolicyMetaData.PolicyCommands = (from policyCommand in root.Element("policyCommands").Elements("commandBlock") select policyCommand.Value.Trim()).ToList <string>(); DlpPolicyMetaData dlpPolicyMetaData2 = dlpPolicyMetaData; dlpPolicyMetaData2.Validate(); result = dlpPolicyMetaData2; } catch (ArgumentException innerException) { throw new DlpPolicyParsingException(Strings.DlpPolicyStateStateInvalid, innerException); } catch (NullReferenceException innerException2) { throw new DlpPolicyParsingException(Strings.DlpPolicyXmlMissingElements, innerException2); } catch (XmlException innerException3) { throw new DlpPolicyParsingException(Strings.DlpPolicyXmlInvalid, innerException3); } return(result); }