Do not create if create API key is called on a non-existant user (Fix #4731)

This commit is contained in:
nicolas.dorier
2023-03-03 20:30:54 +09:00
parent 9d72b9779e
commit 0406b420c8
3 changed files with 12 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using NBitcoin;
using NBitcoin.DataEncoders;
@@ -66,7 +67,14 @@ namespace BTCPayServer.Controllers.Greenfield
{
Permissions = request.Permissions.Select(p => p.ToString()).Distinct().ToArray()
});
await _apiKeyRepository.CreateKey(key);
try
{
await _apiKeyRepository.CreateKey(key);
}
catch (DbUpdateException)
{
return this.CreateAPIError("user-not-found", "This user does not exists");
}
return Ok(FromModel(key));
}