Пример #1
0
        // Token: 0x06001AB5 RID: 6837 RVA: 0x00070220 File Offset: 0x0006E420
        private bool IsAuthorized(ADRawEntry entry)
        {
            if (this.securityContext == null)
            {
                return(true);
            }
            RestrictionCheckResult restrictionCheckResult = ADRecipientRestriction.CheckDeliveryRestrictionForAuthenticatedSender(this.securityContext, entry, this.session);

            ExTraceGlobals.ADExpansionTracer.TraceDebug <ADObjectId, RestrictionCheckResult, object>((long)this.GetHashCode(), "Sender {0} permission is {1} for recipient {2}", this.securityContext, restrictionCheckResult, entry[ADObjectSchema.Id]);
            return(ADRecipientRestriction.Accepted(restrictionCheckResult));
        }
        internal RestrictionCheckResult CheckDeliveryRestriction(RecipientData senderData, RecipientData recipientData)
        {
            RestrictionCheckResult checkResult       = RestrictionCheckResult.AcceptedNoPermissionList;
            ADOperationResult      adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate()
            {
                checkResult = ADRecipientRestriction.CheckDeliveryRestriction(senderData.IsEmpty ? null : senderData.Id, true, recipientData.RejectMessagesFrom, recipientData.RejectMessagesFromDLMembers, recipientData.AcceptMessagesOnlyFrom, recipientData.AcceptMessagesOnlyFromDLMembers, recipientData.BypassModerationFrom, recipientData.BypassModerationFromDLMembers, recipientData.ModeratedBy, recipientData.ManagedBy, true, recipientData.ModerationEnabled, recipientData.RecipientType, this.ADRecipientSession, null, 150);
            });

            if (!adoperationResult.Succeeded)
            {
                recipientData.Exception = adoperationResult.Exception;
            }
            return(checkResult);
        }
        // Token: 0x06001AD0 RID: 6864 RVA: 0x0007071C File Offset: 0x0006E91C
        private RestrictionCheckResult Check()
        {
            if (!this.CheckAuthentication())
            {
                return((RestrictionCheckResult)2147483655U);
            }
            RestrictionCheckResult restrictionCheckResult = this.CheckPermissionRestriction();

            if (this.moderationEnabled && ADRecipientRestriction.Accepted(restrictionCheckResult))
            {
                ADRecipientRestriction.tracer.TraceDebug <ADObjectId, RestrictionCheckResult>((long)this.GetHashCode(), "Sender {0} permission check result is {1}, with moderation enabled, now checking moderation bypasses", this.senderId, restrictionCheckResult);
                restrictionCheckResult = this.CheckModerationBypass();
            }
            ADRecipientRestriction.tracer.TraceDebug <ADObjectId, RestrictionCheckResult>((long)this.GetHashCode(), "Sender {0} permission check result is {1}", this.senderId, restrictionCheckResult);
            return(restrictionCheckResult);
        }
 // Token: 0x06001AC9 RID: 6857 RVA: 0x000705D2 File Offset: 0x0006E7D2
 public static bool Failed(RestrictionCheckResult result)
 {
     return((result & (RestrictionCheckResult)2147483648U) != (RestrictionCheckResult)0U);
 }
 // Token: 0x06001AC8 RID: 6856 RVA: 0x000705C3 File Offset: 0x0006E7C3
 public static bool Moderated(RestrictionCheckResult result)
 {
     return((result & RestrictionCheckResult.Moderated) != (RestrictionCheckResult)0U);
 }
 // Token: 0x06001AC7 RID: 6855 RVA: 0x000705B7 File Offset: 0x0006E7B7
 public static bool Accepted(RestrictionCheckResult result)
 {
     return((result & (RestrictionCheckResult)3221225472U) == (RestrictionCheckResult)0U);
 }