Esempio n. 1
0
            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)));
            }
Esempio n. 2
0
 // 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));
 }
Esempio n. 3
0
            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));
            }
Esempio n. 4
0
            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));
            }
Esempio n. 5
0
            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));
            }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 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));
 }
Esempio n. 9
0
            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));
            }
Esempio n. 10
0
 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"));
 }
Esempio n. 11
0
 // Token: 0x0600108C RID: 4236 RVA: 0x0004FC79 File Offset: 0x0004DE79
 public static ScopeSet ResolveUnderScope(OrganizationId organizationId, ScopeSet scopeSet)
 {
     return(ScopeSet.ResolveUnderScope(organizationId, scopeSet, true));
 }
Esempio n. 12
0
 // 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));
 }