Skip to content

Commit 2cdc6fd

Browse files
committed
Merge branch 'v14/dev' into release/14.0
2 parents 72d8b02 + a48e7a7 commit 2cdc6fd

File tree

223 files changed

+1154
-951
lines changed

Some content is hidden

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

223 files changed

+1154
-951
lines changed

Directory.Packages.props

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
</ItemGroup>
1313
<!-- Microsoft packages -->
1414
<ItemGroup>
15-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.1" />
1615
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.1" />
1716
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
1817
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.1" />
@@ -56,7 +55,6 @@
5655
<PackageVersion Include="MiniProfiler.AspNetCore.Mvc" Version="4.3.8" />
5756
<PackageVersion Include="MiniProfiler.Shared" Version="4.3.8" />
5857
<PackageVersion Include="ncrontab" Version="3.3.3" />
59-
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
6058
<PackageVersion Include="NPoco" Version="5.7.1" />
6159
<PackageVersion Include="NPoco.SqlServer" Version="5.7.1" />
6260
<PackageVersion Include="OpenIddict.Abstractions" Version="4.10.1" />

src/Umbraco.Cms.Api.Delivery/Controllers/DeliveryApiControllerBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
using Microsoft.AspNetCore.Mvc;
21
using System.Net;
32
using Microsoft.AspNetCore.Authorization;
3+
using Microsoft.AspNetCore.Mvc;
44
using Umbraco.Cms.Api.Common.Attributes;
55
using Umbraco.Cms.Api.Common.Filters;
66
using Umbraco.Cms.Api.Delivery.Configuration;
@@ -13,7 +13,7 @@ namespace Umbraco.Cms.Api.Delivery.Controllers;
1313
[ApiController]
1414
[JsonOptionsName(Constants.JsonOptionsNames.DeliveryApi)]
1515
[MapToApi(DeliveryApiConfiguration.ApiName)]
16-
[Authorize(Policy = "New" + AuthorizationPolicies.UmbracoFeatureEnabled)]
16+
[Authorize(Policy = AuthorizationPolicies.UmbracoFeatureEnabled)]
1717
public abstract class DeliveryApiControllerBase : Controller, IUmbracoFeature
1818
{
1919
protected string DecodePath(string path)

src/Umbraco.Cms.Api.Delivery/Controllers/Security/MemberController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515
using Umbraco.Cms.Core.Security;
1616
using Umbraco.Cms.Web.Common.Security;
1717
using Umbraco.Extensions;
18-
using SignInResult = Microsoft.AspNetCore.Mvc.SignInResult;
1918
using IdentitySignInResult = Microsoft.AspNetCore.Identity.SignInResult;
19+
using SignInResult = Microsoft.AspNetCore.Mvc.SignInResult;
2020

2121
namespace Umbraco.Cms.Api.Delivery.Controllers.Security;
2222

2323
[ApiVersion("1.0")]
24-
[ApiController]
2524
[VersionedDeliveryApiRoute(Common.Security.Paths.MemberApi.EndpointTemplate)]
2625
[ApiExplorerSettings(IgnoreApi = true)]
2726
public class MemberController : DeliveryApiControllerBase

src/Umbraco.Cms.Api.Management/Controllers/AuditLog/AuditLogControllerBase.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
namespace Umbraco.Cms.Api.Management.Controllers.AuditLog;
55

6-
[ApiController]
76
[VersionedApiBackOfficeRoute("audit-log")]
87
[ApiExplorerSettings(GroupName = "Audit Log")]
98
public class AuditLogControllerBase : ManagementApiControllerBase

src/Umbraco.Cms.Api.Management/Controllers/AuditLog/ByKeyAuditLogController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
namespace Umbraco.Cms.Api.Management.Controllers.AuditLog;
1414

1515
[ApiVersion("1.0")]
16-
[Authorize(Policy = "New" + AuthorizationPolicies.SectionAccessContentOrMedia)]
16+
[Authorize(Policy = AuthorizationPolicies.SectionAccessContentOrMedia)]
1717
public class ByKeyAuditLogController : AuditLogControllerBase
1818
{
1919
private readonly IAuditService _auditService;

src/Umbraco.Cms.Api.Management/Controllers/Content/ContentControllerBase.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using Microsoft.AspNetCore.Http;
22
using Microsoft.AspNetCore.Mvc;
3-
using Umbraco.Cms.Api.Management.ViewModels.Content;
43
using Umbraco.Cms.Core.Models.ContentEditing;
54
using Umbraco.Cms.Core.Models.ContentEditing.Validation;
65
using Umbraco.Cms.Core.Services.OperationStatus;
@@ -61,6 +60,14 @@ protected IActionResult ContentEditingOperationStatusResult(ContentEditingOperat
6160
.WithTitle("Invalid sorting options")
6261
.WithDetail("The supplied sorting operations were invalid. Additional details can be found in the log.")
6362
.Build()),
63+
ContentEditingOperationStatus.InvalidCulture => BadRequest(problemDetailsBuilder
64+
.WithTitle("Invalid culture")
65+
.WithDetail("One or more of the supplied culture codes did not match the configured languages.")
66+
.Build()),
67+
ContentEditingOperationStatus.DuplicateKey => BadRequest(problemDetailsBuilder
68+
.WithTitle("Invalid Id")
69+
.WithDetail("The supplied id is already in use.")
70+
.Build()),
6471
ContentEditingOperationStatus.Unknown => StatusCode(
6572
StatusCodes.Status500InternalServerError,
6673
problemDetailsBuilder

src/Umbraco.Cms.Api.Management/Controllers/Culture/CultureControllerBase.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
namespace Umbraco.Cms.Api.Management.Controllers.Culture;
55

6-
[ApiController]
76
[VersionedApiBackOfficeRoute("culture")]
87
[ApiExplorerSettings(GroupName = "Culture")]
98
public abstract class CultureControllerBase : ManagementApiControllerBase

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99

1010
namespace Umbraco.Cms.Api.Management.Controllers.DataType;
1111

12-
[ApiController]
1312
[VersionedApiBackOfficeRoute(Constants.UdiEntityType.DataType)]
1413
[ApiExplorerSettings(GroupName = "Data Type")]
15-
[Authorize(Policy = "New" + AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes)]
14+
[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes)]
1615
public abstract class DataTypeControllerBase : ManagementApiControllerBase
1716
{
1817
protected IActionResult DataTypeOperationStatusResult(DataTypeOperationStatus status) =>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using Microsoft.AspNetCore.Authorization;
2+
using Microsoft.AspNetCore.Mvc;
3+
using Umbraco.Cms.Api.Management.Routing;
4+
using Umbraco.Cms.Core;
5+
using Umbraco.Cms.Web.Common.Authorization;
6+
7+
namespace Umbraco.Cms.Api.Management.Controllers.DataType.Filter;
8+
9+
[ApiExplorerSettings(GroupName = "Data Type")]
10+
[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Filter}/{Constants.UdiEntityType.DataType}")]
11+
// This auth policy might become problematic, as when getting DataTypes on Media types, you don't need access to the document tree.
12+
[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes)]
13+
public abstract class DataTypeFilterControllerBase : ManagementApiControllerBase
14+
{
15+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Http;
3+
using Microsoft.AspNetCore.Mvc;
4+
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
5+
using Umbraco.Cms.Api.Management.ViewModels.DataType.Item;
6+
using Umbraco.Cms.Api.Management.ViewModels.Language;
7+
using Umbraco.Cms.Core;
8+
using Umbraco.Cms.Core.Mapping;
9+
using Umbraco.Cms.Core.Models;
10+
using Umbraco.Cms.Core.Services;
11+
12+
namespace Umbraco.Cms.Api.Management.Controllers.DataType.Filter;
13+
14+
[ApiVersion("1.0")]
15+
public class FilterDataTypeFilterController : DataTypeFilterControllerBase
16+
{
17+
private readonly IDataTypeService _dataTypeService;
18+
private readonly IUmbracoMapper _mapper;
19+
20+
public FilterDataTypeFilterController(IDataTypeService dataTypeService, IUmbracoMapper mapper)
21+
{
22+
_dataTypeService = dataTypeService;
23+
_mapper = mapper;
24+
}
25+
26+
[HttpGet]
27+
[MapToApiVersion("1.0")]
28+
[ProducesResponseType(typeof(PagedViewModel<DataTypeItemResponseModel>), StatusCodes.Status200OK)]
29+
public async Task<IActionResult> Filter(
30+
int skip = 0,
31+
int take = 100,
32+
string name = "",
33+
string? editorUiAlias = null,
34+
string? editorAlias = null)
35+
{
36+
PagedModel<IDataType> dataTypes = await _dataTypeService.FilterAsync(name, editorUiAlias, editorAlias, skip, take);
37+
List<DataTypeItemResponseModel> responseModels = _mapper.MapEnumerable<IDataType, DataTypeItemResponseModel>(dataTypes.Items);
38+
var viewModel = new PagedViewModel<DataTypeItemResponseModel>
39+
{
40+
Total = dataTypes.Total,
41+
Items = responseModels,
42+
};
43+
return Ok(viewModel);
44+
}
45+
}

0 commit comments

Comments
 (0)