2023-07-05 12:42:52 +02:00
using Asp.Versioning ;
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Mvc ;
using Umbraco.Cms.Api.Management.ViewModels.User ;
using Umbraco.Cms.Core ;
using Umbraco.Cms.Core.Services ;
using Umbraco.Cms.Core.Services.OperationStatus ;
2023-12-11 08:25:29 +01:00
using Umbraco.Cms.Web.Common.Authorization ;
2023-07-05 12:42:52 +02:00
namespace Umbraco.Cms.Api.Management.Controllers.User ;
[ApiVersion("1.0")]
2023-12-11 08:25:29 +01:00
[Authorize(Policy = "New" + AuthorizationPolicies.DenyLocalLoginIfConfigured)]
2023-07-05 12:42:52 +02:00
public class VerifyInviteUserController : UserControllerBase
{
private readonly IUserService _userService ;
public VerifyInviteUserController ( IUserService userService ) = > _userService = userService ;
2023-12-11 08:25:29 +01:00
// [AllowAnonymous] // This is handled implicitly by the NewDenyLocalLoginIfConfigured policy. Keep it here for now and check FIXME in <see cref="DenyLocalLoginHandler" />.
2023-07-05 12:42:52 +02:00
[HttpPost("invite/verify")]
[MapToApiVersion("1.0")]
[ProducesResponseType(StatusCodes.Status200OK)]
2023-08-04 10:51:20 +02:00
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)]
2023-07-05 12:42:52 +02:00
public async Task < IActionResult > Invite ( VerifyInviteUserRequestModel model )
{
Attempt < UserOperationStatus > result = await _userService . VerifyInviteAsync ( model . UserId , model . Token ) ;
return result . Success
? Ok ( )
: UserOperationStatusResult ( result . Result ) ;
}
}