Пример #1
0
        public static ExchangeValidator Create(IConfigurationSession configSession, Func <RecipientIdParameter, IRecipientSession, ReducedRecipient> recipientGetter, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, bool allowGroups, string logTag, SourceValidator.Clients client, int existingRecipientsCount, ExecutionLog logger)
        {
            ArgumentValidator.ThrowIfNull("configSession", configSession);
            OrganizationId    organizationId  = configSession.GetOrgContainer().OrganizationId;
            ADSessionSettings sessionSettings = ADSessionSettings.FromExternalDirectoryOrganizationId(new Guid(organizationId.ToExternalDirectoryOrganizationId()));
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 205, "Create", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Validators\\ExchangeValidator.cs");
            int maxLimitFromConfig = SourceValidator.GetMaxLimitFromConfig("MaxRecipientsLimit", 1000, existingRecipientsCount);

            return(new ExchangeValidator(tenantOrRootOrgRecipientSession, recipientGetter, writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, allowGroups, maxLimitFromConfig, logger, logTag, organizationId.ToExternalDirectoryOrganizationId(), client));
        }
Пример #2
0
 public ExchangeValidator(IRecipientSession recipientSession, Func <RecipientIdParameter, IRecipientSession, ReducedRecipient> recipientGetter, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, bool allowGroups, int maxRecipientsLimit, ExecutionLog logger, string logTag, string tenantId, SourceValidator.Clients client) : base(writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, logger, logTag, tenantId, client)
 {
     ArgumentValidator.ThrowIfNull("recipientSession", recipientSession);
     ArgumentValidator.ThrowIfNull("recipientGetter", recipientGetter);
     this.recipientSession   = recipientSession;
     this.recipientGetter    = recipientGetter;
     this.allowGroups        = allowGroups;
     this.maxRecipientsLimit = maxRecipientsLimit;
 }
Пример #3
0
 public SourceValidator(Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, ExecutionLog logger, string logTag, string tenantId, SourceValidator.Clients client)
 {
     if (client == SourceValidator.Clients.NewCompliancePolicy || client == SourceValidator.Clients.SetCompliancePolicy)
     {
         ArgumentValidator.ThrowIfNull("writeErrorDelegate", writeErrorDelegate);
         ArgumentValidator.ThrowIfNull("writeWarningDelegate", writeWarningDelegate);
         ArgumentValidator.ThrowIfNull("shouldContinueDelegate", shouldContinueDelegate);
     }
     this.writeErrorDelegate     = writeErrorDelegate;
     this.writeWarningDelegate   = writeWarningDelegate;
     this.shouldContinueDelegate = shouldContinueDelegate;
     this.logger           = logger;
     this.logTag           = logTag;
     this.tenantId         = tenantId;
     this.client           = client;
     this.logCorrelationId = Guid.NewGuid().ToString();
 }
Пример #4
0
        private static SharepointValidator Create(IConfigurationSession configurationSession, ADObjectId executingUserId, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, string logTag, SourceValidator.Clients client, int existingSitesCount, ExecutionLog logger)
        {
            ArgumentValidator.ThrowIfNull("configurationSession", configurationSession);
            Uri            uri            = null;
            Uri            uri2           = null;
            OrganizationId organizationId = configurationSession.GetOrgContainer().OrganizationId;

            UnifiedPolicyConfiguration.GetInstance().GetTenantSharePointUrls(configurationSession, out uri, out uri2);
            if (uri == null)
            {
                EventNotificationItem.Publish(ExchangeComponent.UnifiedComplianceSourceValidation.Name, "SharepointValidatorUnexpectedError", client.ToString(), string.Format("Tenant {0}, Error:{1}", organizationId.ToExternalDirectoryOrganizationId(), Strings.FailedToGetSpSiteUrlForTenant), ResultSeverityLevel.Error, false);
                throw new SpValidatorException(Strings.FailedToGetSpSiteUrlForTenant);
            }
            ADUser actAsUser = null;

            if (executingUserId != null)
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromExternalDirectoryOrganizationId(new Guid(organizationId.ToExternalDirectoryOrganizationId()));
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 520, "Create", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Validators\\SharepointValidator.cs");
                actAsUser = tenantOrRootOrgRecipientSession.FindADUserByObjectId(executingUserId);
            }
            ICredentials credentials = UnifiedPolicyConfiguration.GetInstance().GetCredentials(configurationSession, actAsUser);

            if (credentials == null)
            {
                EventNotificationItem.Publish(ExchangeComponent.UnifiedComplianceSourceValidation.Name, "SharepointValidatorUnexpectedError", client.ToString(), string.Format("Tenant {0}, Error:{1}", organizationId.ToExternalDirectoryOrganizationId(), Strings.FailedToGetCredentialsForTenant), ResultSeverityLevel.Error, false);
                throw new SpValidatorException(Strings.FailedToGetCredentialsForTenant);
            }
            int maxLimitFromConfig = SourceValidator.GetMaxLimitFromConfig("MaxSitesLimit", 100, existingSitesCount);

            return(new SharepointValidator(uri, credentials, executingUserId != null, writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, maxLimitFromConfig, logger, logTag, organizationId.ToExternalDirectoryOrganizationId(), client));
        }
Пример #5
0
 public SharepointValidator(Uri spSiteContextUrl, ICredentials credentials, bool validateUsingSearch, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, int maxSitesLimit, ExecutionLog logger, string logTag, string tenantId, SourceValidator.Clients client) : base(writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, logger, logTag, tenantId, client)
 {
     ArgumentValidator.ThrowIfNull("spSiteContextUrl", spSiteContextUrl);
     ArgumentValidator.ThrowIfNull("credentials", credentials);
     this.spSiteContextUrl    = spSiteContextUrl;
     this.credentials         = credentials;
     this.validateUsingSearch = validateUsingSearch;
     this.maxSitesLimit       = maxSitesLimit;
 }
Пример #6
0
        public static SharepointValidator Create(IConfigurationSession configurationSession, ExchangeRunspaceConfiguration exchangeRunspaceConfig, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, string logTag, SourceValidator.Clients client, int existingSitesCount, ExecutionLog logger)
        {
            bool       boolFromConfig = Utils.GetBoolFromConfig("ValidateSharepointUsingSearch", true);
            ADObjectId executingUserId;

            if (boolFromConfig)
            {
                if (exchangeRunspaceConfig == null || !exchangeRunspaceConfig.TryGetExecutingUserId(out executingUserId))
                {
                    throw new SpValidatorException(Strings.FailedToGetExecutingUser);
                }
            }
            else
            {
                executingUserId = null;
            }
            return(SharepointValidator.Create(configurationSession, executingUserId, writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, logTag, client, existingSitesCount, logger));
        }