public BindingStorage ToBindingStorage(ExPolicyConfigProvider policyConfigProvider) { ArgumentValidator.ThrowIfNull("policyConfigProvider", policyConfigProvider); BindingStorage bindingStorage = new BindingStorage(); bindingStorage.SetId(PolicyStorage.PoliciesContainer.GetChildId(this.Name)); bindingStorage.Name = this.Name; bindingStorage.MasterIdentity = this.MasterIdentity; bindingStorage.PolicyId = this.PolicyId; bindingStorage.Workload = this.Workload; bindingStorage.PolicyVersion = this.PolicyVersion; foreach (string scopeStorageString in this.RawAppliedScopes) { ScopeStorage scopeStorage = ExBindingStoreObject.ScopeStorageFromString(scopeStorageString, policyConfigProvider); if (scopeStorage != null) { bindingStorage.AppliedScopes.Add(scopeStorage); } } if (this.WhenChanged != null) { bindingStorage.propertyBag.SetField(ADObjectSchema.WhenChangedRaw, ADValueConvertor.ConvertValueToString(this.WhenChanged.Value, null)); } if (this.WhenCreated != null) { bindingStorage.propertyBag.SetField(ADObjectSchema.WhenCreatedRaw, ADValueConvertor.ConvertValueToString(this.WhenCreated.Value, null)); } bindingStorage.ResetChangeTracking(true); bindingStorage.RawObject = this; return(bindingStorage); }
public override PolicyConfigBase ConvertFromStorage(ExPolicyConfigProvider provider, UnifiedPolicyStorageBase storageObject) { ArgumentValidator.ThrowIfNull("provider", provider); ArgumentValidator.ThrowIfNull("storageObject", storageObject); PolicyConfigBase policyConfigBase = provider.NewBlankConfigInstance <TPolicyConfig>(); if (!provider.ReadOnly) { policyConfigBase.RawObject = storageObject; } Guid identity = storageObject.Guid; if (!ExPolicyConfigProvider.IsFFOOnline) { identity = storageObject.MasterIdentity; } policyConfigBase.Identity = identity; policyConfigBase.Name = storageObject.Name; policyConfigBase.Version = PolicyVersion.Create(storageObject.PolicyVersion); policyConfigBase.Workload = storageObject.Workload; policyConfigBase.WhenChangedUTC = storageObject.WhenChangedUTC; policyConfigBase.WhenCreatedUTC = storageObject.WhenChangedUTC; this.copyPropertiesToPolicyConfigDelegate((TPolicyStorage)((object)storageObject), (TPolicyConfig)((object)policyConfigBase)); policyConfigBase.ResetChangeTracking(); return(policyConfigBase); }
internal static ObjectId GetRootId(IConfigDataProvider dataSession) { ExPolicyConfigProvider exPolicyConfigProvider = dataSession as ExPolicyConfigProvider; if (exPolicyConfigProvider != null) { return(exPolicyConfigProvider.GetPolicyConfigContainer(null)); } return(null); }
public PolicyConfigProvider GetPolicyStore(OrganizationId organizationId) { if (organizationId == null) { throw new ArgumentNullException("organizationId"); } ExPolicyConfigProvider exPolicyConfigProvider = (ExPolicyConfigProvider)PolicyConfigProviderManager <ExPolicyConfigProviderManager> .Instance.CreateForProcessingEngine(organizationId, this.logger, this.PreferredDomainController); this.PreferredDomainController = exPolicyConfigProvider.LastUsedDc; return(exPolicyConfigProvider); }
public override PolicyConfigProvider CreateForSyncEngine(Guid externalDirectoryOrganizationId, string auxiliaryStore, bool enablePolicyApplication = true, ExecutionLog logProvider = null) { return(this.WrapKnownException(delegate { ExPolicyConfigProvider exPolicyConfigProvider = new ExPolicyConfigProvider(externalDirectoryOrganizationId, false, string.Empty, logProvider); if (enablePolicyApplication) { exPolicyConfigProvider.PolicyConfigChanged += ExPolicyConfigChangeHandler.Current.EventHandler; } return exPolicyConfigProvider; })); }
public void FromBindingStorage(BindingStorage bindingStorage, ExPolicyConfigProvider policyConfigProvider) { ArgumentValidator.ThrowIfNull("bindingStorage", bindingStorage); ArgumentValidator.ThrowIfNull("policyConfigProvider", policyConfigProvider); this.Name = bindingStorage.Name; this.MasterIdentity = bindingStorage.MasterIdentity; this.PolicyId = bindingStorage.PolicyId; this.Workload = bindingStorage.Workload; this.PolicyVersion = bindingStorage.PolicyVersion; this.RawAppliedScopes.Clear(); foreach (ScopeStorage scopeStorage in bindingStorage.AppliedScopes) { string item = ExBindingStoreObject.ScopeStorageToString(scopeStorage); this.RawAppliedScopes.Add(item); } }
public override UnifiedPolicyStorageBase ConvertToStorage(ExPolicyConfigProvider provider, PolicyConfigBase policyConfig) { ArgumentValidator.ThrowIfNull("provider", provider); ArgumentValidator.ThrowIfNull("storageObject", policyConfig); UnifiedPolicyStorageBase unifiedPolicyStorageBase = policyConfig.RawObject as TPolicyStorage; if (unifiedPolicyStorageBase == null) { unifiedPolicyStorageBase = Activator.CreateInstance <TPolicyStorage>(); unifiedPolicyStorageBase.OrganizationId = provider.GetOrganizationId(); if (ExPolicyConfigProvider.IsFFOOnline) { unifiedPolicyStorageBase.SetId(new ADObjectId(PolicyStorage.PoliciesContainer.GetChildId(policyConfig.Name).DistinguishedName, policyConfig.Identity)); } else { PolicyRuleConfig policyRuleConfig = policyConfig as PolicyRuleConfig; ADObjectId policyConfigContainer = provider.GetPolicyConfigContainer((policyRuleConfig == null) ? null : new Guid?(policyRuleConfig.PolicyDefinitionConfigId)); unifiedPolicyStorageBase.SetId(policyConfigContainer.GetChildId(policyConfig.Name)); unifiedPolicyStorageBase.MasterIdentity = policyConfig.Identity; } } else if ((ExPolicyConfigProvider.IsFFOOnline && policyConfig.Identity != unifiedPolicyStorageBase.Guid) || (!ExPolicyConfigProvider.IsFFOOnline && policyConfig.Identity != unifiedPolicyStorageBase.MasterIdentity)) { throw new PolicyConfigProviderPermanentException(ServerStrings.ErrorCouldNotUpdateMasterIdentityProperty(policyConfig.Name)); } if (policyConfig.Version != null) { unifiedPolicyStorageBase.PolicyVersion = policyConfig.Version.InternalStorage; } unifiedPolicyStorageBase.Name = policyConfig.Name; if (unifiedPolicyStorageBase.Workload != policyConfig.Workload) { unifiedPolicyStorageBase.Workload = policyConfig.Workload; } this.copyPropertiesToStorageDelegate((TPolicyConfig)((object)policyConfig), (TPolicyStorage)((object)unifiedPolicyStorageBase)); return(unifiedPolicyStorageBase); }
public ExBindingStoreObjectProvider(ExPolicyConfigProvider policyConfigProvider) : base(policyConfigProvider.GetOrganizationId()) { ArgumentValidator.ThrowIfNull("policyConfigProvider", policyConfigProvider); this.policyConfigProvider = policyConfigProvider; }
public abstract UnifiedPolicyStorageBase ConvertToStorage(ExPolicyConfigProvider provider, PolicyConfigBase policyConfig);
public abstract PolicyConfigBase ConvertFromStorage(ExPolicyConfigProvider provider, UnifiedPolicyStorageBase storageObject);
public abstract Func <QueryFilter, ObjectId, bool, SortBy, IConfigurable[]> GetFindStorageObjectsDelegate(ExPolicyConfigProvider provider);
public override Func <QueryFilter, ObjectId, bool, SortBy, IConfigurable[]> GetFindStorageObjectsDelegate(ExPolicyConfigProvider provider) { return(new Func <QueryFilter, ObjectId, bool, SortBy, IConfigurable[]>(provider.Find <TPolicyStorage>)); }
private static ScopeStorage ScopeStorageFromString(string scopeStorageString, ExPolicyConfigProvider policyConfigProvider) { if (!string.IsNullOrEmpty(scopeStorageString)) { Guid empty = Guid.Empty; Mode mode = Mode.Enforce; Guid empty2 = Guid.Empty; string[] array = scopeStorageString.Split(new char[] { ',' }, 5); if (array.Length == 5 && Guid.TryParse(array[0], out empty) && Enum.TryParse <Mode>(array[1], out mode) && Guid.TryParse(array[2], out empty2) && !string.IsNullOrEmpty(array[3]) && !string.IsNullOrEmpty(array[4])) { ScopeStorage scopeStorage = new ScopeStorage(); scopeStorage.SetId(PolicyStorage.PoliciesContainer.GetChildId(empty.ToString())); scopeStorage.Name = array[3]; scopeStorage.MasterIdentity = empty; scopeStorage.PolicyVersion = empty2; scopeStorage.Mode = mode; scopeStorage.Scope = array[4]; scopeStorage.ResetChangeTracking(true); return(scopeStorage); } } policyConfigProvider.LogOneEntry(ExecutionLog.EventType.CriticalError, "Convert string to scope storage", new FormatException(string.Format("'{0}' is not valid for scope storage.", scopeStorageString))); return(null); }