protected void PutEachEntryInList()
        {
            List <ActiveDirectoryAccessRule> list = null;

            for (int i = 0; i < this.ModifiedObjects.Count; i++)
            {
                if (this.IsEqualEntry(i))
                {
                    list = this.ModifiedAcl[i];
                    break;
                }
            }
            if (list == null)
            {
                list = new List <ActiveDirectoryAccessRule>();
                this.ModifiedObjects.Add(this.DataObject);
                this.ModifiedAcl.Add(list);
                this.ModifyingRecipientSessions.Add(base.DataSession);
            }
            AccessControlType allowOrDeny   = this.Instance.Deny ? AccessControlType.Deny : AccessControlType.Allow;
            MailboxRights     mailboxRights = (MailboxRights)0;

            if (this.Instance.AccessRights != null)
            {
                foreach (MailboxRights mailboxRights2 in this.Instance.AccessRights)
                {
                    mailboxRights |= mailboxRights2;
                }
            }
            if (mailboxRights != (MailboxRights)0)
            {
                this.UpdateAcl(list, allowOrDeny, mailboxRights);
            }
        }
Exemple #2
0
 private bool HasRight(MailboxRights right)
 {
     foreach (MailboxRights mailboxRights in this.mailboxpermissionspo.AccessRights)
     {
         if ((mailboxRights & right) == right)
         {
             return(true);
         }
     }
     return(false);
 }
        protected virtual void UpdateAcl(List <ActiveDirectoryAccessRule> modifiedAcl, AccessControlType allowOrDeny, MailboxRights mailboxRights)
        {
            TaskLogger.LogEnter();
            SecurityIdentifier identity = (this.SecurityPrincipal.MasterAccountSid != null && !this.SecurityPrincipal.MasterAccountSid.IsWellKnown(WellKnownSidType.SelfSid)) ? this.SecurityPrincipal.MasterAccountSid : this.SecurityPrincipal.Sid;

            modifiedAcl.Add(new ActiveDirectoryAccessRule(identity, (ActiveDirectoryRights)mailboxRights, allowOrDeny, Guid.Empty, this.Instance.InheritanceType, Guid.Empty));
            TaskLogger.LogExit();
        }
Exemple #4
0
 protected override void UpdateAcl(List <ActiveDirectoryAccessRule> modifiedAcl, AccessControlType allowOrDeny, MailboxRights mailboxRights)
 {
     TaskLogger.LogEnter();
     base.UpdateAcl(modifiedAcl, allowOrDeny, mailboxRights);
     foreach (SecurityIdentifier identity in base.SecurityPrincipal.SidHistory)
     {
         modifiedAcl.Add(new ActiveDirectoryAccessRule(identity, (ActiveDirectoryRights)mailboxRights, allowOrDeny, Guid.Empty, base.Instance.InheritanceType, Guid.Empty));
     }
     TaskLogger.LogExit();
 }