private string GetStorageObjectName(UnifiedPolicyStorageBase storage) { if (storage is PolicyStorage) { return(Strings.DisplayPolicyName(storage.Name)); } if (storage is RuleStorage) { return(Strings.DisplayRuleName(storage.Name)); } if (storage is BindingStorage) { return(Strings.DisplayBindingName(storage.Workload.ToString())); } if (!(storage is ScopeStorage)) { return(string.Empty); } BindingMetadata bindingMetadata = BindingMetadata.FromStorage(((ScopeStorage)storage).Scope); if (bindingMetadata != null) { return(bindingMetadata.Name); } return(string.Empty); }
private static PolicyBindingConfig ToBindingScope(ScopeStorage storageScope) { PolicyBindingConfig policyBindingConfig = new PolicyBindingConfig(); policyBindingConfig.Identity = (ExPolicyConfigProvider.IsFFOOnline ? storageScope.Guid : storageScope.MasterIdentity); policyBindingConfig.Name = storageScope.Name; policyBindingConfig.Mode = storageScope.Mode; policyBindingConfig.Scope = BindingMetadata.FromStorage(storageScope.Scope); policyBindingConfig.Version = PolicyVersion.Create(storageScope.PolicyVersion); policyBindingConfig.ResetChangeTracking(); return(policyBindingConfig); }
internal static MultiValuedProperty <BindingMetadata> GetScopesFromStorage(BindingStorage bindingStorage) { ArgumentValidator.ThrowIfNull("bindingStorage", bindingStorage); MultiValuedProperty <BindingMetadata> multiValuedProperty = new MultiValuedProperty <BindingMetadata>(); if (bindingStorage.AppliedScopes.Any <ScopeStorage>()) { foreach (ScopeStorage scopeStorage in bindingStorage.AppliedScopes) { if (scopeStorage.Mode == Mode.Enforce) { multiValuedProperty.TryAdd(BindingMetadata.FromStorage(scopeStorage.Scope)); } } } multiValuedProperty.ResetChangeTracking(); return(multiValuedProperty); }
private BindingStorage GetBindingStorageForSubWorkload(IEnumerable <BindingStorage> bindingContainers, Workload subWorkload, Guid universalIdentity, bool createNewIfNotFound) { IEnumerable <BindingStorage> enumerable = from s in bindingContainers where s.Workload == Workload.SharePoint select s; BindingStorage bindingStorage3 = (from bindingStorage in enumerable where bindingStorage.Scopes.Any <string>() select bindingStorage).FirstOrDefault((BindingStorage bindingStorage) => BindingMetadata.FromStorage(bindingStorage.Scopes.First <string>()).Workload == subWorkload); if (bindingStorage3 != null) { return(bindingStorage3); } foreach (BindingStorage bindingStorage2 in enumerable) { if (!bindingStorage2.Scopes.Any <string>()) { bindingStorage3 = bindingStorage2; return(bindingStorage3); } } if (createNewIfNotFound) { bindingStorage3 = Utils.CreateNewBindingStorage(base.OrganizationalUnitRoot, Workload.SharePoint, universalIdentity); this.StorageBindings.Add(bindingStorage3); } return(bindingStorage3); }
internal static void PopulateScopeStorages(BindingStorage bindingStorage, MultiValuedProperty <BindingMetadata> scopes) { ArgumentValidator.ThrowIfNull("bindingStorage", bindingStorage); ArgumentValidator.ThrowIfNull("scopes", scopes); if (scopes.Changed) { object[] removed = scopes.Removed; for (int i = 0; i < removed.Length; i++) { BindingMetadata removedScope = (BindingMetadata)removed[i]; ScopeStorage scopeStorage = bindingStorage.AppliedScopes.Find((ScopeStorage item) => string.Equals(BindingMetadata.FromStorage(item.Scope).ImmutableIdentity, removedScope.ImmutableIdentity, StringComparison.OrdinalIgnoreCase)); scopeStorage.Mode = Mode.PendingDeletion; scopeStorage.PolicyVersion = CombGuidGenerator.NewGuid(); } object[] added = scopes.Added; for (int j = 0; j < added.Length; j++) { BindingMetadata addedScope = (BindingMetadata)added[j]; ScopeStorage scopeStorage2 = bindingStorage.AppliedScopes.Find((ScopeStorage item) => string.Equals(BindingMetadata.FromStorage(item.Scope).ImmutableIdentity, addedScope.ImmutableIdentity, StringComparison.OrdinalIgnoreCase)); if (scopeStorage2 == null) { Guid objectGuid = Guid.NewGuid(); scopeStorage2 = new ScopeStorage(); scopeStorage2[ADObjectSchema.OrganizationalUnitRoot] = bindingStorage.OrganizationalUnitRoot; scopeStorage2.Name = objectGuid.ToString(); scopeStorage2.SetId(new ADObjectId(PolicyStorage.PoliciesContainer.GetChildId(scopeStorage2.Name).DistinguishedName, objectGuid)); bindingStorage.AppliedScopes.Add(scopeStorage2); } scopeStorage2.Mode = Mode.Enforce; scopeStorage2.Scope = BindingMetadata.ToStorage(addedScope); scopeStorage2.PolicyVersion = CombGuidGenerator.NewGuid(); } bindingStorage.PolicyVersion = CombGuidGenerator.NewGuid(); scopes.ResetChangeTracking(); } }