internal virtual ADSessionSettings FromOrganizationIdWithoutRbacScopes(ADObjectId rootOrgId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, bool scopeToExecutingUserOrgId, bool allowRehoming) { if (rootOrgId == null) { throw new ArgumentNullException("rootOrgId"); } if (null == currentOrganizationId) { throw new ArgumentNullException("currentOrganizationId"); } if (scopeToExecutingUserOrgId && executingUserOrganizationId == null) { throw new ArgumentException("scopeToExecutingUserOrgId + null executingUserOrganizationId"); } if (allowRehoming) { currentOrganizationId = this.RehomeScopingOrganizationIdIfNeeded(currentOrganizationId); executingUserOrganizationId = this.RehomeScopingOrganizationIdIfNeeded(executingUserOrganizationId); } OrganizationId organizationId = currentOrganizationId; if (scopeToExecutingUserOrgId) { organizationId = executingUserOrganizationId; } ScopeSet orgWideDefaultScopeSet = ScopeSet.GetOrgWideDefaultScopeSet(organizationId); ConfigScopes configScopes = ConfigScopes.TenantLocal; return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(orgWideDefaultScopeSet, rootOrgId, currentOrganizationId, executingUserOrganizationId, configScopes, (currentOrganizationId.PartitionId != null) ? currentOrganizationId.PartitionId : (Globals.IsMicrosoftHostedOnly ? rootOrgId.GetPartitionId() : null))); }
// Token: 0x0600108D RID: 4237 RVA: 0x0004FC84 File Offset: 0x0004DE84 internal static ScopeSet ResolveUnderScope(OrganizationId organizationId, ScopeSet scopeSet, bool checkOrgScope) { if (organizationId == null) { throw new ArgumentNullException("organizationId"); } if (organizationId.OrganizationalUnit == null || organizationId.ConfigurationUnit == null) { throw new ArgumentException("Invalid under scope organization provided"); } if (scopeSet == null) { return(ScopeSet.GetOrgWideDefaultScopeSet(organizationId)); } if (checkOrgScope) { if (scopeSet.RecipientReadScope.Root != null && !organizationId.OrganizationalUnit.IsDescendantOf(scopeSet.RecipientReadScope.Root)) { throw new ADScopeException(DirectoryStrings.ExceptionOrgScopeNotInUserScope(organizationId.OrganizationalUnit.ToString(), scopeSet.RecipientReadScope.Root.ToString()), null); } if (scopeSet.ConfigReadScope.Root != null && !organizationId.ConfigurationUnit.Parent.IsDescendantOf(scopeSet.ConfigReadScope.Root.Parent)) { throw new ADScopeException(DirectoryStrings.ExceptionOrgScopeNotInUserScope(organizationId.ConfigurationUnit.Parent.ToString(), scopeSet.ConfigReadScope.Root.Parent.ToString()), null); } } return(new ScopeSet(new ADScope(organizationId.OrganizationalUnit, (scopeSet.RecipientReadScope != null) ? scopeSet.RecipientReadScope.Filter : null), scopeSet.RecipientWriteScopes, scopeSet.exclusiveRecipientScopes, new ADScope(organizationId.ConfigurationUnit, (scopeSet.ConfigReadScope != null) ? scopeSet.ConfigReadScope.Filter : null), new ADScope(organizationId.ConfigurationUnit, (scopeSet.configWriteScope != null) ? scopeSet.configWriteScope.Filter : null), scopeSet.objectSpecificConfigWriteScopes, scopeSet.objectSpecificExclusiveConfigWriteScopes, scopeSet.validationRules)); }
protected static ADSessionSettings CreateADSessionSettings(ScopeSet scopeSet, ADObjectId rootOrgId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, ConfigScopes configScopes, PartitionId partitionId) { ADSessionSettings adsessionSettings = new ADSessionSettings(scopeSet, rootOrgId, currentOrganizationId, executingUserOrganizationId, configScopes, partitionId); if (ADSessionSettings.SessionSettingsFactory.ThreadPostActionForSettings == null) { return(adsessionSettings); } return(ADSessionSettings.SessionSettingsFactory.ThreadPostActionForSettings(adsessionSettings)); }
internal ADSessionSettings FromOrganizationIdWithAddressListScope(ADObjectId rootOrgId, OrganizationId scopingOrganizationId, ADObjectId scopingAddressListId, OrganizationId executingUserOrganizationId) { ArgumentValidator.ThrowIfNull("scopingAddressListId", scopingAddressListId); QueryFilter recipientReadFilter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.AddressListMembership, scopingAddressListId), new ExistsFilter(ADRecipientSchema.DisplayName) }); return(this.FromCustomScopeSet(ScopeSet.GetOrgWideDefaultScopeSet(scopingOrganizationId, recipientReadFilter), rootOrgId, scopingOrganizationId, executingUserOrganizationId, true)); }
internal ADSessionSettings FromCustomScopeSet(ScopeSet scopeSet, ADObjectId rootOrgId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, bool allowRehoming = true) { if (rootOrgId == null) { throw new ArgumentNullException("rootOrgId"); } ConfigScopes configScopes = ConfigScopes.TenantLocal; if (allowRehoming) { currentOrganizationId = this.RehomeScopingOrganizationIdIfNeeded(currentOrganizationId); executingUserOrganizationId = this.RehomeScopingOrganizationIdIfNeeded(executingUserOrganizationId); } return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(scopeSet, rootOrgId, currentOrganizationId, executingUserOrganizationId, configScopes, currentOrganizationId.PartitionId)); }
private ADSessionSettings(ScopeSet scopeSet, ADObjectId rootOrgId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, ConfigScopes configScopes, PartitionId partitionId) { if (scopeSet == null) { throw new ArgumentNullException("scopeSet"); } if (null == currentOrganizationId) { throw new ArgumentNullException("currentOrganizationId"); } if (executingUserOrganizationId != null && !executingUserOrganizationId.Equals(OrganizationId.ForestWideOrgId) && !executingUserOrganizationId.Equals(currentOrganizationId) && !currentOrganizationId.OrganizationalUnit.IsDescendantOf(executingUserOrganizationId.OrganizationalUnit)) { throw new ArgumentException(DirectoryStrings.ErrorInvalidExecutingOrg(executingUserOrganizationId.OrganizationalUnit.DistinguishedName, currentOrganizationId.OrganizationalUnit.DistinguishedName)); } if (partitionId == null) { throw new ArgumentNullException("partitionId"); } this.scopeSet = scopeSet; this.preferredServers = new SimpleServerSettings(); this.rootOrgId = rootOrgId; this.currentOrganizationId = currentOrganizationId; this.executingUserOrganizationId = executingUserOrganizationId; this.configScopes = configScopes; this.partitionId = partitionId; this.tenantConsistencyMode = ((configScopes == ConfigScopes.AllTenants) ? TenantConsistencyMode.IgnoreRetiredTenants : TenantConsistencyMode.ExpectOnlyLiveTenants); if (!ADGlobalConfigSettings.SoftLinkEnabled || this.PartitionId == null || this.PartitionId.IsLocalForestPartition() || ADSessionSettings.IsForefrontObject(this.PartitionId)) { this.PartitionSoftLinkMode = SoftLinkMode.Disabled; return; } if (this.PartitionId.ForestFQDN.EndsWith(TopologyProvider.LocalForestFqdn, StringComparison.OrdinalIgnoreCase)) { this.PartitionSoftLinkMode = SoftLinkMode.Disabled; return; } if (this.ConfigScopes == ConfigScopes.Database || this.ConfigScopes == ConfigScopes.Server || this.ConfigScopes == ConfigScopes.RootOrg) { this.PartitionSoftLinkMode = SoftLinkMode.Disabled; return; } this.PartitionSoftLinkMode = SoftLinkMode.DualMatch; }
internal static ADSessionSettings RescopeToOrganization(ADSessionSettings sessionSettings, OrganizationId orgId, bool checkOrgScope, bool rehomeDataSession = true) { if (sessionSettings == null) { throw new ArgumentNullException("sessionSettings"); } if (orgId != null && orgId.OrganizationalUnit == null && sessionSettings.RecipientReadScope.Root == null) { return(sessionSettings); } if (sessionSettings.CurrentOrganizationId != null && sessionSettings.CurrentOrganizationId.Equals(orgId)) { return(sessionSettings); } ScopeSet scopeSet = ScopeSet.ResolveUnderScope(orgId, sessionSettings.ScopeSet, checkOrgScope); ADSessionSettings adsessionSettings = ADSessionSettings.FromCustomScopeSet(scopeSet, sessionSettings.RootOrgId, orgId, checkOrgScope ? sessionSettings.ExecutingUserOrganizationId : OrganizationId.ForestWideOrgId, rehomeDataSession); ADSessionSettings.CloneSettableProperties(sessionSettings, adsessionSettings); return(adsessionSettings); }
internal virtual ADSessionSettings FromOrganizationIdWithoutRbacScopesServiceOnly(OrganizationId scopingOrganizationId, bool allowRehoming) { if (allowRehoming) { scopingOrganizationId = this.RehomeScopingOrganizationIdIfNeeded(scopingOrganizationId); } return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(ScopeSet.GetOrgWideDefaultScopeSet(scopingOrganizationId, null), null, scopingOrganizationId, null, ConfigScopes.TenantLocal, scopingOrganizationId.PartitionId)); }
internal virtual ADSessionSettings FromOrganizationIdWithAddressListScopeServiceOnly(OrganizationId scopingOrganizationId, ADObjectId scopingAddressListId) { QueryFilter recipientReadFilter; if (scopingAddressListId == null) { recipientReadFilter = ADScope.NoObjectFilter; } else { recipientReadFilter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.AddressListMembership, scopingAddressListId), new ExistsFilter(ADRecipientSchema.DisplayName) }); } return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(ScopeSet.GetOrgWideDefaultScopeSet(scopingOrganizationId, recipientReadFilter), null, scopingOrganizationId, null, ConfigScopes.TenantLocal, scopingOrganizationId.PartitionId)); }
internal static ADSessionSettings FromCustomScopeSet(ScopeSet scopeSet, ADObjectId rootOrgId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, bool allowRehoming = true) { return(ADSessionSettings.InvokeWithAPILogging <ADSessionSettings>(() => ADSessionSettings.SessionSettingsFactory.Default.FromCustomScopeSet(scopeSet, rootOrgId, currentOrganizationId, executingUserOrganizationId, allowRehoming), "FromCustomScopeSet")); }
// Token: 0x0600108C RID: 4236 RVA: 0x0004FC79 File Offset: 0x0004DE79 public static ScopeSet ResolveUnderScope(OrganizationId organizationId, ScopeSet scopeSet) { return(ScopeSet.ResolveUnderScope(organizationId, scopeSet, true)); }
// Token: 0x06001089 RID: 4233 RVA: 0x0004FBB2 File Offset: 0x0004DDB2 internal static ScopeSet GetOrgWideDefaultScopeSet(OrganizationId organizationId) { return(ScopeSet.GetOrgWideDefaultScopeSet(organizationId, null)); }
internal override ADSessionSettings FromAllTenantsPartitionId(PartitionId partitionId) { return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(ScopeSet.GetAllTenantsDefaultScopeSet(partitionId.ForestFQDN), null, OrganizationId.ForestWideOrgId, null, ConfigScopes.AllTenants, partitionId)); }