Skip to content

Commit d687c43

Browse files
Member types: Prepare container support (#20715)
* Add MemberType/MemberTypeContainer to supported EntityContainer object types * Implement MemberTypeContainerRepository * Prepare base controller for MemberTypeTreeControllerBase. * Revert "Prepare base controller for MemberTypeTreeControllerBase." This reverts commit ad213a2. * Added foldersOnly flag in readiness for support in 17.1. * Added foldersOnly flag in readiness for support in 17.1 (2). --------- Co-authored-by: Ronald Barendse <[email protected]>
1 parent 4368814 commit d687c43

File tree

5 files changed

+31
-35
lines changed

5 files changed

+31
-35
lines changed

src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public RootMemberTypeTreeController(IEntityService entityService, FlagProviderCo
3030
public async Task<ActionResult<PagedViewModel<MemberTypeTreeItemResponseModel>>> Root(
3131
CancellationToken cancellationToken,
3232
int skip = 0,
33-
int take = 100)
33+
int take = 100,
34+
bool foldersOnly = false)
3435
=> await GetRoot(skip, take);
3536
}

src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/SiblingMemberTypeTreeController.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Microsoft.AspNetCore.Http;
1+
using Microsoft.AspNetCore.Http;
22
using Microsoft.AspNetCore.Mvc;
33
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
44
using Umbraco.Cms.Api.Management.Services.Flags;
@@ -23,6 +23,7 @@ public async Task<ActionResult<SubsetViewModel<MemberTypeTreeItemResponseModel>>
2323
CancellationToken cancellationToken,
2424
Guid target,
2525
int before,
26-
int after)
26+
int after,
27+
bool foldersOnly = false)
2728
=> await GetSiblings(target, before, after);
2829
}

src/Umbraco.Core/Models/EntityContainer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public sealed class EntityContainer : TreeEntityBase, IUmbracoEntity
1212
{ Constants.ObjectTypes.DataType, Constants.ObjectTypes.DataTypeContainer },
1313
{ Constants.ObjectTypes.DocumentType, Constants.ObjectTypes.DocumentTypeContainer },
1414
{ Constants.ObjectTypes.MediaType, Constants.ObjectTypes.MediaTypeContainer },
15+
{ Constants.ObjectTypes.MemberType, Constants.ObjectTypes.MemberTypeContainer },
1516
{ Constants.ObjectTypes.DocumentBlueprint, Constants.ObjectTypes.DocumentBlueprintContainer },
1617
};
1718

src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityContainerRepository.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ public EntityContainerRepository(
3232
{
3333
Guid[] allowedContainers =
3434
{
35-
Constants.ObjectTypes.DocumentTypeContainer, Constants.ObjectTypes.MediaTypeContainer,
36-
Constants.ObjectTypes.DataTypeContainer, Constants.ObjectTypes.DocumentBlueprintContainer,
35+
Constants.ObjectTypes.DataTypeContainer,
36+
Constants.ObjectTypes.DocumentTypeContainer,
37+
Constants.ObjectTypes.MediaTypeContainer,
38+
Constants.ObjectTypes.MemberTypeContainer,
39+
Constants.ObjectTypes.DocumentBlueprintContainer,
3740
};
3841
NodeObjectTypeId = containerObjectType;
3942
if (allowedContainers.Contains(NodeObjectTypeId) == false)
Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,26 @@
1-
using Umbraco.Cms.Core.Models;
1+
using Microsoft.Extensions.Logging;
2+
using Umbraco.Cms.Core;
3+
using Umbraco.Cms.Core.Cache;
24
using Umbraco.Cms.Core.Persistence.Repositories;
5+
using Umbraco.Cms.Infrastructure.Scoping;
36

4-
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
7+
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
8+
9+
internal sealed class MemberTypeContainerRepository : EntityContainerRepository, IMemberTypeContainerRepository
510
{
6-
/// <summary>
7-
/// A no-op implementation of <see cref="IMemberTypeContainerRepository"/>, as containers aren't supported for members.
8-
/// </summary>
9-
/// <remarks>
10-
/// Introduced to avoid inconsistencies with nullability of dependencies for type repositories for content, media and members.
11-
/// </remarks>
12-
internal sealed class MemberTypeContainerRepository : IMemberTypeContainerRepository
11+
public MemberTypeContainerRepository(
12+
IScopeAccessor scopeAccessor,
13+
AppCaches cache,
14+
ILogger<MemberTypeContainerRepository> logger,
15+
IRepositoryCacheVersionService repositoryCacheVersionService,
16+
ICacheSyncService cacheSyncService)
17+
: base(
18+
scopeAccessor,
19+
cache,
20+
logger,
21+
Constants.ObjectTypes.MemberTypeContainer,
22+
repositoryCacheVersionService,
23+
cacheSyncService)
1324
{
14-
public void Delete(EntityContainer entity)
15-
{
16-
}
17-
18-
public bool Exists(int id) => false;
19-
20-
public EntityContainer? Get(Guid id) => null;
21-
22-
public IEnumerable<EntityContainer> Get(string name, int level) => Enumerable.Empty<EntityContainer>();
23-
24-
public bool HasDuplicateName(Guid parentKey, string name) => false;
25-
26-
public bool HasDuplicateName(int parentId, string name) => false;
27-
28-
public EntityContainer? Get(int id) => null;
29-
30-
public IEnumerable<EntityContainer> GetMany(params int[]? ids) => Enumerable.Empty<EntityContainer>();
31-
32-
public void Save(EntityContainer entity)
33-
{
34-
}
3525
}
3626
}

0 commit comments

Comments
 (0)