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(); }
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); }
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)); }