Ejemplo n.º 1
0
        protected override void PrepareRecipientObject(ADUser user)
        {
            TaskLogger.LogEnter();
            ADUser aduser = this.mailboxPlanObject;

            if (aduser != null)
            {
                user.MailboxPlan = aduser.Id;
            }
            else if (user.MailboxPlan != null)
            {
                if (user.MailboxPlanObject != null)
                {
                    aduser = user.MailboxPlanObject;
                }
                else
                {
                    MailboxPlanIdParameter mailboxPlanIdParameter = new MailboxPlanIdParameter(user.MailboxPlan);
                    aduser = (ADUser)base.GetDataObject <ADUser>(mailboxPlanIdParameter, base.TenantGlobalCatalogSession, null, new LocalizedString?(Strings.ErrorMailboxPlanNotFound(mailboxPlanIdParameter.ToString())), new LocalizedString?(Strings.ErrorMailboxPlanNotUnique(mailboxPlanIdParameter.ToString())), ExchangeErrorCategory.Client);
                }
                this.mailboxPlanObject = aduser;
            }
            user.MailboxPlanObject = null;
            user.propertyBag.ResetChangeTracking(ADRecipientSchema.MailboxPlanObject);
            if (aduser != null)
            {
                using (new CmdletMonitoredScope(base.CurrentTaskContext.UniqueId, "BizLogic", "NewMailboxOrSyncMailbox.PrepareRecipientObject", LoggerHelper.CmdletPerfMonitors))
                {
                    ADUser aduser2 = new ADUser();
                    aduser2.StampPersistableDefaultValues();
                    aduser2.StampDefaultValues(RecipientType.UserMailbox);
                    aduser2.ResetChangeTracking();
                    User.FromDataObject(aduser2).ApplyCloneableProperties(User.FromDataObject(aduser));
                    Mailbox.FromDataObject(aduser2).ApplyCloneableProperties(Mailbox.FromDataObject(aduser));
                    CASMailbox.FromDataObject(aduser2).ApplyCloneableProperties(CASMailbox.FromDataObject(aduser));
                    UMMailbox.FromDataObject(aduser2).ApplyCloneableProperties(UMMailbox.FromDataObject(aduser));
                    bool            litigationHoldEnabled = user.LitigationHoldEnabled;
                    ElcMailboxFlags elcMailboxFlags       = user.ElcMailboxFlags;
                    user.CopyChangesFrom(aduser2);
                    if (base.SoftDeletedObject != null)
                    {
                        if (litigationHoldEnabled != user.LitigationHoldEnabled)
                        {
                            user.LitigationHoldEnabled = litigationHoldEnabled;
                        }
                        if (elcMailboxFlags != user.ElcMailboxFlags)
                        {
                            user.ElcMailboxFlags = elcMailboxFlags;
                        }
                    }
                }
            }
            base.PrepareRecipientObject(user);
            MailboxTaskHelper.WriteWarningWhenMailboxIsUnlicensed(user, new Task.TaskWarningLoggingDelegate(this.WriteWarning));
            TaskLogger.LogExit();
        }
Ejemplo n.º 2
0
        protected override void StampChangesOn(IConfigurable dataObject)
        {
            ADUser aduser = (ADUser)dataObject;

            if (this.Instance.IsModified(SyncMailUserSchema.ElcMailboxFlags) && !VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).CmdletInfra.OverWriteElcMailboxFlags.Enabled)
            {
                ElcMailboxFlags elcMailboxFlags = aduser.ElcMailboxFlags & ElcMailboxFlags.ValidArchiveDatabase;
                this.Instance.ElcMailboxFlags |= elcMailboxFlags;
            }
            base.StampChangesOn(dataObject);
        }
Ejemplo n.º 3
0
        private static bool IsRententionPolicyEnabled(IADRecipientCache cache, ProxyAddress address)
        {
            ADRawEntry data = cache.FindAndCacheRecipient(address).Data;

            if (data == null)
            {
                return(false);
            }
            ElcMailboxFlags elcMailboxFlags = (ElcMailboxFlags)data[ADUserSchema.ElcMailboxFlags];
            ADObjectId      adobjectId      = (ADObjectId)data[ADUserSchema.ElcPolicyTemplate];

            return(((elcMailboxFlags & ElcMailboxFlags.ElcV2) != ElcMailboxFlags.None && adobjectId != null) || ((elcMailboxFlags & ElcMailboxFlags.ShouldUseDefaultRetentionPolicy) != ElcMailboxFlags.None && adobjectId == null));
        }
        internal static bool IsRetentionPolicyEnabled(ADRecipientCache <TransportMiniRecipient> cache, RoutingAddress address)
        {
            ProxyAddress           proxyAddress = new SmtpProxyAddress((string)address, true);
            TransportMiniRecipient data         = cache.FindAndCacheRecipient(proxyAddress).Data;

            if (data == null)
            {
                return(false);
            }
            ElcMailboxFlags elcMailboxFlags   = data.ElcMailboxFlags;
            ADObjectId      elcPolicyTemplate = data.ElcPolicyTemplate;

            return(((elcMailboxFlags & ElcMailboxFlags.ElcV2) != ElcMailboxFlags.None && elcPolicyTemplate != null) || ((elcMailboxFlags & ElcMailboxFlags.ShouldUseDefaultRetentionPolicy) != ElcMailboxFlags.None && elcPolicyTemplate == null));
        }