2024-07-29 14:34:11 +02:00
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Mvc ;
using Umbraco.Cms.Core.Security.OperationStatus ;
namespace Umbraco.Cms.Api.Management.Controllers.User.ClientCredentials ;
[ApiExplorerSettings(GroupName = "User")]
public abstract class ClientCredentialsUserControllerBase : UserControllerBase
{
protected IActionResult BackOfficeUserClientCredentialsOperationStatusResult ( BackOfficeUserClientCredentialsOperationStatus status ) = >
OperationStatusResult ( status , problemDetailsBuilder = > status switch
{
BackOfficeUserClientCredentialsOperationStatus . InvalidUser = > BadRequest ( problemDetailsBuilder
. WithTitle ( "Invalid user" )
. WithDetail ( "The specified user does not support this operation. Possibly caused by a mismatched client ID or an inapplicable user type." )
. Build ( ) ) ,
BackOfficeUserClientCredentialsOperationStatus . DuplicateClientId = > BadRequest ( problemDetailsBuilder
. WithTitle ( "Duplicate client ID" )
. WithDetail ( "The specified client ID is already in use. Choose another client ID." )
. Build ( ) ) ,
2024-11-07 10:42:40 +01:00
BackOfficeUserClientCredentialsOperationStatus . InvalidClientId = > BadRequest ( problemDetailsBuilder
. WithTitle ( "Invalid client ID" )
2024-11-15 09:40:26 +01:00
. WithDetail ( "The specified client ID is invalid. A valid client ID can only contain [a-z], [A-Z], [0-9], and [-._~]. Furthermore, including the prefix it cannot be longer than 255 characters." )
2024-11-07 10:42:40 +01:00
. Build ( ) ) ,
2024-07-29 14:34:11 +02:00
_ = > StatusCode ( StatusCodes . Status500InternalServerError , problemDetailsBuilder
. WithTitle ( "Unknown client credentials operation status." )
. Build ( ) ) ,
} ) ;
}