Ejemplo n.º 1
0
 public static bool AssignMemberRight(MailboxSession mailboxSession, List <PermissionEntry> permissionEntries, DefaultFolderType defaultFolderType, out int foldersModified)
 {
     foldersModified = 0;
     try
     {
         using (Folder folder = Folder.Bind(mailboxSession, defaultFolderType))
         {
             bool          flag          = false;
             PermissionSet permissionSet = folder.GetPermissionSet();
             foreach (PermissionEntry permissionEntry in permissionEntries)
             {
                 if (permissionEntry.UserSecurityPrincipal != null && GroupMailboxPermissionHandler.ModifyPermission(permissionSet, permissionEntry.UserSecurityPrincipal, permissionEntry.UserRights))
                 {
                     flag = true;
                     foldersModified++;
                 }
             }
             if (flag)
             {
                 folder.Save();
             }
             return(true);
         }
     }
     catch (CorruptDataException arg)
     {
         GroupMailboxPermissionHandler.Tracer.TraceDebug <DefaultFolderType, CorruptDataException>(1L, "Member rights already configured for folder {0}. Exception: {1}", defaultFolderType, arg);
     }
     catch (ObjectNotFoundException ex)
     {
         GroupMailboxPermissionHandler.Tracer.TraceError(1L, (ex.InnerException != null) ? ex.InnerException.ToString() : ex.ToString());
     }
     return(false);
 }