private bool DlpPolicyMatches(TransportRule rule) { if (!base.Fields.IsModified("DlpPolicy")) { return(true); } Guid immutableId; if (!Guid.TryParse(this.DlpPolicy, out immutableId)) { ADComplianceProgram adcomplianceProgram = DlpUtils.GetInstalledTenantDlpPolicies(base.DataSession, this.DlpPolicy).FirstOrDefault <ADComplianceProgram>(); if (adcomplianceProgram == null) { return(false); } immutableId = adcomplianceProgram.ImmutableId; } Guid guid; if (rule.TryGetDlpPolicyId(out guid)) { return(guid.Equals(immutableId)); } return(string.IsNullOrEmpty(this.DlpPolicy)); }
public override void Validate() { if (this.dataObject.FileData == null) { this.dataObject.WriteError(new ArgumentException(Strings.ImportDlpPolicyFileDataIsNull), ErrorCategory.InvalidArgument, "FileData"); } try { this.templates = DlpUtils.LoadDlpPolicyTemplates(this.dataObject.FileData); } catch (Exception ex) { if (!this.IsKnownException(ex)) { throw; } this.dataObject.WriteError(ex, ErrorCategory.InvalidOperation, null); } using (IEnumerator <ADComplianceProgram> enumerator = DlpUtils.GetOutOfBoxDlpTemplates(base.DataSession).GetEnumerator()) { while (enumerator.MoveNext()) { ADComplianceProgram dlpPolicyTemplate = enumerator.Current; if (this.templates.Any((DlpPolicyTemplateMetaData a) => a.Name == dlpPolicyTemplate.Name)) { this.dataObject.WriteError(new ArgumentException(Strings.ErrorDlpPolicyTemplateAlreadyInstalled(dlpPolicyTemplate.Name)), ErrorCategory.InvalidArgument, "FileData"); } } } }
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; }
internal DlpPolicy(ADComplianceProgram adDlpPolicy) : base(adDlpPolicy) { if (base.AdDlpPolicy != null) { base.AdDlpPolicy = base.AdDlpPolicy; this.dlpPolicyMetaData = DlpPolicyParser.ParseDlpPolicyInstance(base.AdDlpPolicy.TransportRulesXml); return; } base.AdDlpPolicy = new ADComplianceProgram(); this.dlpPolicyMetaData = new DlpPolicyMetaData(); }
internal static DlpPolicyTemplateMetaData LoadOutOfBoxDlpTemplate(Fqdn domainController, string templateName) { IConfigDataProvider dataSession = DlpUtils.CreateOrgSession(domainController); ADComplianceProgram adcomplianceProgram = DlpUtils.GetOutOfBoxDlpTemplates(dataSession, templateName).FirstOrDefault <ADComplianceProgram>(); if (adcomplianceProgram != null) { return(DlpPolicyParser.ParseDlpPolicyTemplate(adcomplianceProgram.TransportRulesXml)); } return(null); }
public static void SaveOutOfBoxDlpTemplates(IConfigDataProvider dataSession, IEnumerable <DlpPolicyTemplateMetaData> dlpTemplates) { ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, DlpUtils.OutOfBoxDlpPoliciesCollectionName); foreach (DlpPolicyTemplateMetaData dlpPolicyTemplateMetaData in dlpTemplates) { ADComplianceProgram adcomplianceProgram = dlpPolicyTemplateMetaData.ToAdObject(); adcomplianceProgram.OrganizationId = dlpPolicyCollection.OrganizationId; adcomplianceProgram.SetId(dlpPolicyCollection.Id.GetChildId(dlpPolicyTemplateMetaData.Name)); dataSession.Save(adcomplianceProgram); } }
public DlpPolicyTemplate(ADComplianceProgram dlpPolicy, CultureInfo culture) : base(dlpPolicy) { if (base.AdDlpPolicy != null) { base.AdDlpPolicy = base.AdDlpPolicy; this.dlpTemplateMetaData = DlpPolicyParser.ParseDlpPolicyTemplate(base.AdDlpPolicy.TransportRulesXml); } else { base.AdDlpPolicy = new ADComplianceProgram(); this.dlpTemplateMetaData = new DlpPolicyTemplateMetaData(); } this.CurrentCulture = culture; }
private void SaveDlpPolicy(ADComplianceProgram instance) { bool flag = MessagingPoliciesSyncLogDataSession.IsNameNewOrChangedForTenantScopedObject(instance); this.dataSession.Save(instance); if (flag) { ADComplianceProgram dlpPolicyByName = DlpUtils.GetDlpPolicyByName(this.dataSession, this.policiesCollectionName, instance.Name); Guid value; if (this.GetExternalDirectoryOrganizationIdToLog(dlpPolicyByName, out value)) { TenantSettingSyncLogGenerator.Instance.LogChangesForSave(dlpPolicyByName, new Guid?(value), new Guid?(dlpPolicyByName.ImmutableId), null); } } }
private DlpPolicy TryGetDlpPolicy(ADComplianceProgram adDlpPolicy) { DlpPolicy result; try { result = new DlpPolicy(adDlpPolicy); } catch (DlpPolicyParsingException) { DlpPolicy dlpPolicy = new DlpPolicy(null); dlpPolicy.SetAdDlpPolicyWithNoDlpXml(adDlpPolicy); this.taskObject.WriteWarning(Strings.DlpPolicyXmlInvalid); result = dlpPolicy; } return(result); }
internal ADComplianceProgram ToAdObject() { string transportRulesXml; using (MemoryStream memoryStream = new MemoryStream(DlpPolicyParser.SerializeDlpPolicyTemplate(this))) { StreamReader streamReader = new StreamReader(memoryStream); transportRulesXml = streamReader.ReadToEnd(); } ADComplianceProgram adcomplianceProgram = new ADComplianceProgram(); adcomplianceProgram.Name = DlpPolicyTemplateMetaData.GetLocalizedStringValue(this.LocalizedNames, null); adcomplianceProgram.Description = DlpPolicyTemplateMetaData.GetLocalizedStringValue(this.LocalizedDescriptions, null); adcomplianceProgram.ImmutableId = this.ImmutableId; adcomplianceProgram.Keywords = (from keyword in this.LocalizedKeywords select DlpPolicyTemplateMetaData.GetLocalizedStringValue(keyword, DlpPolicyTemplateMetaData.DefaultCulture)).ToArray <string>(); adcomplianceProgram.PublisherName = this.PublisherName; adcomplianceProgram.State = DlpUtils.RuleStateToDlpState(this.State, this.Mode); adcomplianceProgram.TransportRulesXml = transportRulesXml; adcomplianceProgram.Version = this.Version; return(adcomplianceProgram); }
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 void SetAdDlpPolicyWithNoDlpXml(ADComplianceProgram adDlpPolicy) { base.AdDlpPolicy = adDlpPolicy; }
protected DlpPolicyPresentationBase(ADComplianceProgram adDlpPolicy) { this.adDlpPolicy = adDlpPolicy; }
public static void DeleteOutOfBoxDlpPolicy(IConfigDataProvider dataSession, string templateName) { ADComplianceProgram instance = DlpUtils.GetOutOfBoxDlpTemplates(dataSession, templateName).FirstOrDefault <ADComplianceProgram>(); dataSession.Delete(instance); }
private static void HandleScriptExecutionError(ADComplianceProgram adDlpPolicy, IConfigDataProvider dataSession, Exception e) { DlpUtils.DeleteEtrsByDlpPolicy(adDlpPolicy.ImmutableId, dataSession); dataSession.Delete(adDlpPolicy); throw new DlpPolicyScriptExecutionException(e.Message); }