Files
Umbraco-CMS/src/Umbraco.Cms.Api.Management/Controllers/Security/SecurityControllerBase.cs
Bjarke Berg 1fd4fce3a8 Rename policies to original names (#15825)
* Removed the "New" from all policy names now that the legacy backoffice is gone.

* more policy renaming

* more policy renaming

* Uncommenting tests

* Cleanup

* Removing unused policy names

* Renaming AdminUserEditsRequireAdmin to a more meaningful UserPermissionByResource

* Completing TODO and some alphabetical rearranging

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2024-03-04 15:51:24 +01:00

37 lines
1.7 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Api.Management.Routing;
using Umbraco.Cms.Core.Models.Membership;
using Umbraco.Cms.Core.Services.OperationStatus;
using Umbraco.Cms.Web.Common.Authorization;
namespace Umbraco.Cms.Api.Management.Controllers.Security;
[ApiController]
[VersionedApiBackOfficeRoute("security")]
[ApiExplorerSettings(GroupName = "Security")]
[Authorize(Policy = AuthorizationPolicies.DenyLocalLoginIfConfigured)]
public abstract class SecurityControllerBase : ManagementApiControllerBase
{
protected IActionResult UserOperationStatusResult(UserOperationStatus status, ErrorMessageResult? errorMessageResult = null) =>
OperationStatusResult(status, problemDetailsBuilder => status switch
{
UserOperationStatus.UserNotFound => NotFound(problemDetailsBuilder
.WithTitle("The user was not found")
.WithDetail("The specified user was not found.")
.Build()),
UserOperationStatus.InvalidPasswordResetToken => BadRequest(problemDetailsBuilder
.WithTitle("The password reset token was invalid")
.WithDetail("The specified password reset token was either used already or wrong.")
.Build()),
UserOperationStatus.UnknownFailure => BadRequest(problemDetailsBuilder
.WithTitle("Unknown failure")
.WithDetail(errorMessageResult?.Error?.ErrorMessage ?? "The error was unknown")
.Build()),
_ => StatusCode(StatusCodes.Status500InternalServerError, problemDetailsBuilder
.WithTitle("Unknown user operation status.")
.Build()),
});
}