Skip to content

Commit 1c1b4c6

Browse files
Merge branch 'v14/dev' into contrib
2 parents d26f1e4 + 0f16dae commit 1c1b4c6

File tree

69 files changed

+1845
-792
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1845
-792
lines changed

.github/release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ changelog:
1717
labels:
1818
- type/bug
1919
- category/bug
20+
- type/improvement
2021
- title: 📄 Documentation
2122
labels:
2223
- category/documentation
@@ -30,5 +31,8 @@ changelog:
3031
labels:
3132
- category/accessibility
3233
- title: 🚀 New Features
34+
labels:
35+
- type/feature
36+
- title: Other Changes
3337
labels:
3438
- '*'

Directory.Packages.props

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,24 @@
1212
</ItemGroup>
1313
<!-- Microsoft packages -->
1414
<ItemGroup>
15-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.6" />
16-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.6" />
15+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.7" />
16+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.7" />
1717
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.10.0" />
18-
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.6" />
19-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" />
20-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.6" />
21-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.6" />
18+
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.7" />
19+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.7" />
20+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.7" />
21+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.7" />
2222
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
2323
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
2424
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
2525
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
2626
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
27-
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.6" />
27+
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.7" />
2828
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="8.0.0" />
2929
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
3030
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
31-
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.6" />
32-
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="8.0.6" />
31+
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.7" />
32+
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="8.0.7" />
3333
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
3434
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
3535
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
@@ -45,14 +45,14 @@
4545
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
4646
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
4747
<PackageVersion Include="Dazinator.Extensions.FileProviders" Version="2.0.0" />
48-
<PackageVersion Include="Examine" Version="3.2.1" />
49-
<PackageVersion Include="Examine.Core" Version="3.2.1" />
50-
<PackageVersion Include="HtmlAgilityPack" Version="1.11.61" />
51-
<PackageVersion Include="JsonPatch.Net" Version="3.1.0" />
48+
<PackageVersion Include="Examine" Version="3.3.0" />
49+
<PackageVersion Include="Examine.Core" Version="3.3.0" />
50+
<PackageVersion Include="HtmlAgilityPack" Version="1.11.62" />
51+
<PackageVersion Include="JsonPatch.Net" Version="3.1.1" />
5252
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.8" />
53-
<PackageVersion Include="MailKit" Version="4.6.0" />
53+
<PackageVersion Include="MailKit" Version="4.7.1.1" />
5454
<PackageVersion Include="Markdown" Version="2.2.1" />
55-
<PackageVersion Include="MessagePack" Version="2.5.168" />
55+
<PackageVersion Include="MessagePack" Version="2.5.172" />
5656
<PackageVersion Include="MiniProfiler.AspNetCore.Mvc" Version="4.3.8" />
5757
<PackageVersion Include="MiniProfiler.Shared" Version="4.3.8" />
5858
<PackageVersion Include="ncrontab" Version="3.3.3" />
@@ -62,20 +62,20 @@
6262
<PackageVersion Include="OpenIddict.AspNetCore" Version="5.7.0" />
6363
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="5.7.0" />
6464
<PackageVersion Include="Serilog" Version="3.1.1" />
65-
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.1" />
65+
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.2" />
6666
<PackageVersion Include="Serilog.Enrichers.Process" Version="2.0.2" />
6767
<PackageVersion Include="Serilog.Enrichers.Thread" Version="3.1.0" />
6868
<PackageVersion Include="Serilog.Expressions" Version="4.0.0" />
6969
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
7070
<PackageVersion Include="Serilog.Formatting.Compact" Version="2.0.0" />
7171
<PackageVersion Include="Serilog.Formatting.Compact.Reader" Version="3.0.0" />
72-
<PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.1" />
72+
<PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.2" />
7373
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
7474
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
7575
<PackageVersion Include="Serilog.Sinks.Map" Version="1.0.2" />
76-
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.4" />
77-
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="3.1.2" />
78-
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.6.2" />
76+
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.5" />
77+
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="3.1.3" />
78+
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.7.0" />
7979
</ItemGroup>
8080
<!-- Transitive pinned versions (only required because our direct dependencies have vulnerable versions of transitive dependencies) -->
8181
<ItemGroup>

src/Umbraco.Cms.Api.Common/DependencyInjection/ProcessRequestContextHandler.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ public class ProcessRequestContextHandler
1010
: IOpenIddictServerHandler<OpenIddictServerEvents.ProcessRequestContext>, IOpenIddictValidationHandler<OpenIddictValidationEvents.ProcessRequestContext>
1111
{
1212
private readonly IHttpContextAccessor _httpContextAccessor;
13-
private readonly string _backOfficePathSegment;
13+
private readonly string[] _pathsToHandle;
1414

1515
public ProcessRequestContextHandler(IHttpContextAccessor httpContextAccessor)
1616
{
1717
_httpContextAccessor = httpContextAccessor;
18-
_backOfficePathSegment = Constants.System.DefaultUmbracoPath.TrimStart(Constants.CharArrays.Tilde)
18+
var backOfficePathSegment = Constants.System.DefaultUmbracoPath.TrimStart(Constants.CharArrays.Tilde)
1919
.EnsureStartsWith('/')
2020
.EnsureEndsWith('/');
21+
_pathsToHandle = [backOfficePathSegment, "/.well-known/openid-configuration"];
2122
}
2223

2324
public ValueTask HandleAsync(OpenIddictServerEvents.ProcessRequestContext context)
@@ -48,6 +49,14 @@ private bool SkipOpenIddictHandlingForRequest()
4849
return false;
4950
}
5051

51-
return requestPath.StartsWith(_backOfficePathSegment) is false;
52+
foreach (var path in _pathsToHandle)
53+
{
54+
if (requestPath.StartsWith(path))
55+
{
56+
return false;
57+
}
58+
}
59+
60+
return true;
5261
}
5362
}

src/Umbraco.Cms.Api.Management/Controllers/DataType/DataTypeControllerBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Umbraco.Cms.Api.Management.Controllers.DataType;
1111

1212
[VersionedApiBackOfficeRoute(Constants.UdiEntityType.DataType)]
1313
[ApiExplorerSettings(GroupName = "Data Type")]
14-
[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes)]
14+
[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentOrMediaOrContentTypes)]
1515
public abstract class DataTypeControllerBase : ManagementApiControllerBase
1616
{
1717
protected IActionResult DataTypeOperationStatusResult(DataTypeOperationStatus status) =>

src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ConfigurationDocumentTypeController.cs

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
using Microsoft.AspNetCore.Authorization;
33
using Microsoft.AspNetCore.Http;
44
using Microsoft.AspNetCore.Mvc;
5+
using Microsoft.Extensions.DependencyInjection;
56
using Microsoft.Extensions.Options;
7+
using Umbraco.Cms.Api.Management.Factories;
68
using Umbraco.Cms.Api.Management.ViewModels.DocumentType;
79
using Umbraco.Cms.Core.Configuration.Models;
10+
using Umbraco.Cms.Core.DependencyInjection;
811
using Umbraco.Cms.Core.Features;
912
using Umbraco.Cms.Web.Common.Authorization;
1013

@@ -14,31 +17,39 @@ namespace Umbraco.Cms.Api.Management.Controllers.DocumentType;
1417
[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentTypes)]
1518
public class ConfigurationDocumentTypeController : DocumentTypeControllerBase
1619
{
17-
private readonly UmbracoFeatures _umbracoFeatures;
18-
private readonly DataTypesSettings _dataTypesSettings;
19-
private readonly SegmentSettings _segmentSettings;
20+
private readonly IConfigurationPresentationFactory _configurationPresentationFactory;
2021

22+
[ActivatorUtilitiesConstructor]
23+
public ConfigurationDocumentTypeController(IConfigurationPresentationFactory configurationPresentationFactory)
24+
{
25+
_configurationPresentationFactory = configurationPresentationFactory;
26+
}
27+
28+
[Obsolete("Use the constructor that only accepts IConfigurationPresentationFactory, scheduled for removal in V16")]
29+
public ConfigurationDocumentTypeController(
30+
UmbracoFeatures umbracoFeatures,
31+
IOptionsSnapshot<DataTypesSettings> dataTypesSettings,
32+
IOptionsSnapshot<SegmentSettings> segmentSettings,
33+
IConfigurationPresentationFactory configurationPresentationFactory)
34+
: this(configurationPresentationFactory)
35+
{
36+
}
37+
38+
[Obsolete("Use the constructor that only accepts IConfigurationPresentationFactory, scheduled for removal in V16")]
2139
public ConfigurationDocumentTypeController(
2240
UmbracoFeatures umbracoFeatures,
2341
IOptionsSnapshot<DataTypesSettings> dataTypesSettings,
2442
IOptionsSnapshot<SegmentSettings> segmentSettings)
43+
: this(StaticServiceProvider.Instance.GetRequiredService<IConfigurationPresentationFactory>())
2544
{
26-
_umbracoFeatures = umbracoFeatures;
27-
_dataTypesSettings = dataTypesSettings.Value;
28-
_segmentSettings = segmentSettings.Value;
2945
}
3046

3147
[HttpGet("configuration")]
3248
[MapToApiVersion("1.0")]
3349
[ProducesResponseType(typeof(DocumentTypeConfigurationResponseModel), StatusCodes.Status200OK)]
3450
public Task<IActionResult> Configuration(CancellationToken cancellationToken)
3551
{
36-
var responseModel = new DocumentTypeConfigurationResponseModel
37-
{
38-
DataTypesCanBeChanged = _dataTypesSettings.CanBeChanged,
39-
DisableTemplates = _umbracoFeatures.Disabled.DisableTemplates,
40-
UseSegments = _segmentSettings.Enabled,
41-
};
52+
DocumentTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateDocumentTypeConfigurationResponseModel();
4253

4354
return Task.FromResult<IActionResult>(Ok(responseModel));
4455
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Authorization;
3+
using Microsoft.AspNetCore.Http;
4+
using Microsoft.AspNetCore.Mvc;
5+
using Umbraco.Cms.Api.Management.Factories;
6+
using Umbraco.Cms.Api.Management.ViewModels.MediaType;
7+
using Umbraco.Cms.Web.Common.Authorization;
8+
9+
namespace Umbraco.Cms.Api.Management.Controllers.MediaType;
10+
11+
[ApiVersion("1.0")]
12+
[Authorize(Policy = AuthorizationPolicies.TreeAccessMediaTypes)]
13+
public class ConfigurationMediaTypeController : MediaTypeControllerBase
14+
{
15+
private readonly IConfigurationPresentationFactory _configurationPresentationFactory;
16+
17+
public ConfigurationMediaTypeController(IConfigurationPresentationFactory configurationPresentationFactory)
18+
{
19+
_configurationPresentationFactory = configurationPresentationFactory;
20+
}
21+
22+
[HttpGet("configuration")]
23+
[MapToApiVersion("1.0")]
24+
[ProducesResponseType(typeof(MediaTypeConfigurationResponseModel), StatusCodes.Status200OK)]
25+
public Task<IActionResult> Configuration(CancellationToken cancellationToken)
26+
{
27+
MediaTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMediaTypeConfigurationResponseModel();
28+
29+
return Task.FromResult<IActionResult>(Ok(responseModel));
30+
}
31+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Authorization;
3+
using Microsoft.AspNetCore.Http;
4+
using Microsoft.AspNetCore.Mvc;
5+
using Umbraco.Cms.Api.Management.Factories;
6+
using Umbraco.Cms.Api.Management.ViewModels.MemberType;
7+
using Umbraco.Cms.Web.Common.Authorization;
8+
9+
namespace Umbraco.Cms.Api.Management.Controllers.MemberType;
10+
11+
[ApiVersion("1.0")]
12+
public class ConfigurationMemberTypeController : MemberTypeControllerBase
13+
{
14+
private readonly IConfigurationPresentationFactory _configurationPresentationFactory;
15+
16+
public ConfigurationMemberTypeController(IConfigurationPresentationFactory configurationPresentationFactory)
17+
{
18+
_configurationPresentationFactory = configurationPresentationFactory;
19+
}
20+
21+
[HttpGet("configuration")]
22+
[MapToApiVersion("1.0")]
23+
[ProducesResponseType(typeof(MemberTypeConfigurationResponseModel), StatusCodes.Status200OK)]
24+
public Task<IActionResult> Configuration(CancellationToken cancellationToken)
25+
{
26+
MemberTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMemberTypeConfigurationResponseModel();
27+
28+
return Task.FromResult<IActionResult>(Ok(responseModel));
29+
}
30+
}

src/Umbraco.Cms.Api.Management/Controllers/Tree/UserStartNodeTreeControllerBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ protected override IEntitySlim[] GetPagedChildEntities(Guid parentKey, int skip,
4545
IEntitySlim[] children = base.GetPagedChildEntities(parentKey, skip, take, out totalItems);
4646
return UserHasRootAccess() || IgnoreUserStartNodes()
4747
? children
48-
: CalculateAccessMap(() => _userStartNodeEntitiesService.ChildUserAccessEntities(children, UserStartNodePaths), out totalItems);
48+
// Keeping the correct totalItems amount from GetPagedChildEntities
49+
: CalculateAccessMap(() => _userStartNodeEntitiesService.ChildUserAccessEntities(children, UserStartNodePaths), out _);
4950
}
5051

5152
protected override TItem[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities)

src/Umbraco.Cms.Api.Management/DependencyInjection/BackOfficeAuthPolicyBuilderExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ void AddAllowedApplicationsPolicy(string policyName, params string[] allowedClai
7676
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessDictionaryOrTemplates, Constants.Applications.Translation, Constants.Applications.Settings);
7777
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessDocuments, Constants.Applications.Content);
7878
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes, Constants.Applications.Content, Constants.Applications.Settings);
79+
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessDocumentOrMediaOrContentTypes, Constants.Applications.Content, Constants.Applications.Settings, Constants.Applications.Media);
7980
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessDocumentTypes, Constants.Applications.Settings);
8081
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessLanguages, Constants.Applications.Settings);
8182
AddAllowedApplicationsPolicy(AuthorizationPolicies.TreeAccessMediaTypes, Constants.Applications.Settings);

src/Umbraco.Cms.Api.Management/Factories/ConfigurationPresentationFactory.cs

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,55 @@
1-
using Microsoft.Extensions.Options;
1+
using Microsoft.Extensions.DependencyInjection;
2+
using Microsoft.Extensions.Options;
23
using Umbraco.Cms.Api.Management.ViewModels.Document;
4+
using Umbraco.Cms.Api.Management.ViewModels.DocumentType;
35
using Umbraco.Cms.Api.Management.ViewModels.Media;
6+
using Umbraco.Cms.Api.Management.ViewModels.MediaType;
47
using Umbraco.Cms.Api.Management.ViewModels.Member;
8+
using Umbraco.Cms.Api.Management.ViewModels.MemberType;
59
using Umbraco.Cms.Core.Configuration.Models;
10+
using Umbraco.Cms.Core.DependencyInjection;
11+
using Umbraco.Cms.Core.Features;
612
using Umbraco.Cms.Core.Services;
713

814
namespace Umbraco.Cms.Api.Management.Factories;
915

1016
public class ConfigurationPresentationFactory : IConfigurationPresentationFactory
1117
{
1218
private readonly IReservedFieldNamesService _reservedFieldNamesService;
19+
private readonly UmbracoFeatures _umbracoFeatures;
20+
private readonly DataTypesSettings _dataTypesSettings;
1321
private readonly ContentSettings _contentSettings;
1422
private readonly SegmentSettings _segmentSettings;
1523

1624
public ConfigurationPresentationFactory(
1725
IReservedFieldNamesService reservedFieldNamesService,
1826
IOptions<ContentSettings> contentSettings,
19-
IOptions<SegmentSettings> segmentSettings)
27+
IOptions<SegmentSettings> segmentSettings,
28+
IOptions<DataTypesSettings> dataTypesSettings,
29+
UmbracoFeatures umbracoFeatures)
2030
{
2131
_reservedFieldNamesService = reservedFieldNamesService;
32+
_umbracoFeatures = umbracoFeatures;
33+
_dataTypesSettings = dataTypesSettings.Value;
2234
_contentSettings = contentSettings.Value;
2335
_segmentSettings = segmentSettings.Value;
2436
}
2537

38+
[Obsolete("Use the constructor with all dependencies")]
39+
public ConfigurationPresentationFactory(
40+
IReservedFieldNamesService reservedFieldNamesService,
41+
IOptions<ContentSettings> contentSettings,
42+
IOptions<SegmentSettings> segmentSettings)
43+
: this(
44+
reservedFieldNamesService,
45+
contentSettings,
46+
segmentSettings,
47+
StaticServiceProvider.Instance.GetRequiredService<IOptions<DataTypesSettings>>(),
48+
StaticServiceProvider.Instance.GetRequiredService<UmbracoFeatures>()
49+
)
50+
{
51+
}
52+
2653
public DocumentConfigurationResponseModel CreateDocumentConfigurationResponseModel() =>
2754
new()
2855
{
@@ -33,17 +60,38 @@ public DocumentConfigurationResponseModel CreateDocumentConfigurationResponseMod
3360
ReservedFieldNames = _reservedFieldNamesService.GetDocumentReservedFieldNames(),
3461
};
3562

63+
public DocumentTypeConfigurationResponseModel CreateDocumentTypeConfigurationResponseModel() =>
64+
new()
65+
{
66+
DataTypesCanBeChanged = _dataTypesSettings.CanBeChanged,
67+
DisableTemplates = _umbracoFeatures.Disabled.DisableTemplates,
68+
UseSegments = _segmentSettings.Enabled,
69+
ReservedFieldNames = _reservedFieldNamesService.GetDocumentReservedFieldNames(),
70+
};
71+
3672
public MemberConfigurationResponseModel CreateMemberConfigurationResponseModel() =>
3773
new()
3874
{
3975
ReservedFieldNames = _reservedFieldNamesService.GetMemberReservedFieldNames(),
4076
};
4177

78+
public MemberTypeConfigurationResponseModel CreateMemberTypeConfigurationResponseModel() =>
79+
new()
80+
{
81+
ReservedFieldNames = _reservedFieldNamesService.GetMemberReservedFieldNames(),
82+
};
83+
4284
public MediaConfigurationResponseModel CreateMediaConfigurationResponseModel() =>
4385
new()
4486
{
4587
DisableDeleteWhenReferenced = _contentSettings.DisableDeleteWhenReferenced,
4688
DisableUnpublishWhenReferenced = _contentSettings.DisableUnpublishWhenReferenced,
4789
ReservedFieldNames = _reservedFieldNamesService.GetMediaReservedFieldNames(),
4890
};
91+
92+
public MediaTypeConfigurationResponseModel CreateMediaTypeConfigurationResponseModel() =>
93+
new()
94+
{
95+
ReservedFieldNames = _reservedFieldNamesService.GetMediaReservedFieldNames(),
96+
};
4997
}

0 commit comments

Comments
 (0)