private void ExportExtendedAcls(AclFlags extendedAclFlags, ISourceFolder srcFolder, IFolderProxy targetFolder)
 {
     base.VerifyCapability(MRSProxyCapabilities.SetItemProperties, CapabilityCheck.BothMRSAndOtherProvider);
     if (extendedAclFlags.HasFlag(AclFlags.FolderAcl))
     {
         PropValueData[][] extendedAcl = srcFolder.GetExtendedAcl(AclFlags.FolderAcl);
         if (extendedAcl != null)
         {
             targetFolder.SetItemProperties(new FolderAcl(AclFlags.FolderAcl, extendedAcl));
         }
     }
     if (extendedAclFlags.HasFlag(AclFlags.FreeBusyAcl))
     {
         PropValueData[][] extendedAcl2 = srcFolder.GetExtendedAcl(AclFlags.FreeBusyAcl);
         if (extendedAcl2 != null)
         {
             targetFolder.SetItemProperties(new FolderAcl(AclFlags.FreeBusyAcl, extendedAcl2));
         }
     }
 }
示例#2
0
        PropValueData[][] IFolder.GetExtendedAcl(AclFlags aclFlags)
        {
            MrsTracer.Provider.Function("StorageFolder.GetExtendedAcl: flags = {0}, {1}", new object[]
            {
                aclFlags,
                this.DisplayNameForTracing
            });
            if (!this.HasSecurityDescriptor(aclFlags))
            {
                return(null);
            }
            ModifyTableOptions modifyTableOptions = aclFlags.HasFlag(AclFlags.FreeBusyAcl) ? ModifyTableOptions.FreeBusyAware : ModifyTableOptions.None;

            modifyTableOptions |= ModifyTableOptions.ExtendedPermissionInformation;
            return(this.GetAcl(modifyTableOptions, StorageFolder.ExtendedAclTableColumns));
        }