Skip to content

Commit 17bf1d9

Browse files
committed
Adding a sign for protected tree documents.
1 parent 8b8dc15 commit 17bf1d9

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/Umbraco.Cms.Api.Management/DependencyInjection/UmbracoBuilder.Collections.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ public static partial class UmbracoBuilderExtensions
1111
internal static void AddCollectionBuilders(this IUmbracoBuilder builder)
1212
{
1313
builder.SignProviders()
14-
.Append<HasScheduleSignProvider>();
14+
.Append<HasScheduleSignProvider>()
15+
.Append<IsProtectedSignProvider>();
1516
}
1617

1718
/// <summary>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Umbraco.Cms.Api.Management.ViewModels.Tree;
2+
using Umbraco.Cms.Core.Models.Entities;
3+
4+
namespace Umbraco.Cms.Api.Management.Services.Signs;
5+
6+
internal class IsProtectedSignProvider : ISignProvider
7+
{
8+
private const string Alias = ISignProvider.Prefix + "IsProtected";
9+
10+
/// <inheritdoc/>>
11+
public bool CanProvideTreeSigns<TItem>() => typeof(TItem) == typeof(DocumentTreeItemResponseModel);
12+
13+
/// <inheritdoc/>>
14+
public Task PopulateTreeSignsAsync<TItem>(TItem[] treeItemViewModels, IEnumerable<IEntitySlim> entities)
15+
where TItem : EntityTreeItemResponseModel, new()
16+
{
17+
foreach (TItem item in treeItemViewModels)
18+
{
19+
if (item is DocumentTreeItemResponseModel { IsProtected: true })
20+
{
21+
item.AddSign(Alias);
22+
}
23+
}
24+
25+
return Task.CompletedTask;
26+
}
27+
}

0 commit comments

Comments
 (0)