Files
Umbraco-CMS/src/Umbraco.Infrastructure/Security/OpenIdDictApplicationManagerBase.cs
Kenn Jacobsen 4bd9baa2eb Backport Delivery API member auth from V14 (#14964)
* Backport Delivery API member auth from V14

* Add default implementations to avoid breakage

* Review changes
2023-10-16 11:25:29 +02:00

38 lines
1.4 KiB
C#

using OpenIddict.Abstractions;
namespace Umbraco.Cms.Infrastructure.Security;
public abstract class OpenIdDictApplicationManagerBase
{
private readonly IOpenIddictApplicationManager _applicationManager;
protected OpenIdDictApplicationManagerBase(IOpenIddictApplicationManager applicationManager)
=> _applicationManager = applicationManager;
protected async Task CreateOrUpdate(OpenIddictApplicationDescriptor clientDescriptor, CancellationToken cancellationToken)
{
var identifier = clientDescriptor.ClientId ??
throw new ApplicationException($"ClientId is missing for application: {clientDescriptor.DisplayName ?? "(no name)"}");
var client = await _applicationManager.FindByClientIdAsync(identifier, cancellationToken);
if (client is null)
{
await _applicationManager.CreateAsync(clientDescriptor, cancellationToken);
}
else
{
await _applicationManager.UpdateAsync(client, clientDescriptor, cancellationToken);
}
}
protected async Task Delete(string identifier, CancellationToken cancellationToken)
{
var client = await _applicationManager.FindByClientIdAsync(identifier, cancellationToken);
if (client is null)
{
return;
}
await _applicationManager.DeleteAsync(client, cancellationToken);
}
}