Skip to content

Commit 644aa79

Browse files
committed
Small WebDav fixes
1 parent 59c0ebf commit 644aa79

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

SecureFolderFS.Core.WebDav/EncryptingStorage/EncryptingDavFolder.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
using SecureFolderFS.Core.FileSystem.Directories;
2+
using SecureFolderFS.Core.FileSystem.Helpers;
23
using SecureFolderFS.Core.FileSystem.Paths;
34
using SecureFolderFS.Core.FileSystem.Streams;
45
using SecureFolderFS.Core.WebDav.Storage;
56
using SecureFolderFS.Sdk.Storage;
7+
using SecureFolderFS.Sdk.Storage.Enums;
68
using SecureFolderFS.Sdk.Storage.LocatableStorage;
79
using SecureFolderFS.Sdk.Storage.ModifiableStorage;
810
using System;
11+
using System.Collections.Generic;
12+
using System.Runtime.CompilerServices;
913
using System.Security.Cryptography;
1014
using System.Threading;
1115
using System.Threading.Tasks;
@@ -30,6 +34,22 @@ public EncryptingDavFolder(TCapability inner, IStreamsAccess streamsAccess, IPat
3034
_directoryIdAccess = directoryIdAccess;
3135
}
3236

37+
/// <inheritdoc/>
38+
public override async IAsyncEnumerable<IStorable> GetItemsAsync(StorableKind kind = StorableKind.All, [EnumeratorCancellation] CancellationToken cancellationToken = default)
39+
{
40+
await foreach (var item in Inner.GetItemsAsync(kind, cancellationToken))
41+
{
42+
if (PathHelpers.IsCoreFile(item.Name))
43+
continue;
44+
45+
if (item is IFile file)
46+
yield return NewFile(file);
47+
48+
if (item is IFolder folder)
49+
yield return NewFolder(folder);
50+
}
51+
}
52+
3353
/// <inheritdoc/>
3454
public override async Task<IFolder> CreateFolderAsync(string desiredName, bool overwrite = default, CancellationToken cancellationToken = default)
3555
{
@@ -49,6 +69,7 @@ public override async Task<IFolder> CreateFolderAsync(string desiredName, bool o
4969
return NewFolder(folder);
5070
}
5171

72+
/// <inheritdoc/>
5273
public override Task<IStorable> CreateCopyOfAsync(IStorable itemToCopy, bool overwrite = default, CancellationToken cancellationToken = default)
5374
{
5475
// TODO: When copying, directory ID should be updated as well

SecureFolderFS.Core.WebDav/EncryptingStorage2/EncryptingDiskStoreCollection.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using System.Xml.Linq;
1414
using NWebDav.Server;
1515
using NWebDav.Server.Stores;
16+
using SecureFolderFS.Core.FileSystem.Helpers;
1617
using SecureFolderFS.Core.FileSystem.Paths;
1718
using SecureFolderFS.Core.FileSystem.Streams;
1819

@@ -182,11 +183,21 @@ IEnumerable<IStoreItem> GetItemsInternal()
182183
{
183184
// Add all directories
184185
foreach (var subDirectory in _directoryInfo.GetDirectories())
186+
{
187+
if (PathHelpers.IsCoreFile(subDirectory.Name))
188+
continue;
189+
185190
yield return new EncryptingDiskStoreCollection(LockingManager, subDirectory, IsWritable, _streamsAccess, _pathConverter);
191+
}
186192

187193
// Add all files
188194
foreach (var file in _directoryInfo.GetFiles())
195+
{
196+
if (PathHelpers.IsCoreFile(file.Name))
197+
continue;
198+
189199
yield return new EncryptingDiskStoreItem(LockingManager, file, IsWritable, _streamsAccess, _pathConverter);
200+
}
190201
}
191202

192203
return Task.FromResult(GetItemsInternal());

0 commit comments

Comments
 (0)