prevent app creation without wallet creation (#6255)

* prevent app creation without wallet creation

* resolve test failures

* resolve selenium test
This commit is contained in:
Chukwuleta Tobechi
2024-09-27 07:28:55 +01:00
committed by GitHub
parent 9ba4b030ed
commit 83fa8cbf0f
4 changed files with 24 additions and 1 deletions

View File

@@ -24,12 +24,14 @@ namespace BTCPayServer.Controllers
{
public UIAppsController(
UserManager<ApplicationUser> userManager,
BTCPayNetworkProvider networkProvider,
StoreRepository storeRepository,
IFileService fileService,
AppService appService,
IHtmlHelper html)
{
_userManager = userManager;
_networkProvider = networkProvider;
_storeRepository = storeRepository;
_fileService = fileService;
_appService = appService;
@@ -37,6 +39,7 @@ namespace BTCPayServer.Controllers
}
private readonly UserManager<ApplicationUser> _userManager;
private readonly BTCPayNetworkProvider _networkProvider;
private readonly StoreRepository _storeRepository;
private readonly IFileService _fileService;
private readonly AppService _appService;
@@ -133,6 +136,20 @@ namespace BTCPayServer.Controllers
public async Task<IActionResult> CreateApp(string storeId, CreateAppViewModel vm)
{
var store = GetCurrentStore();
if (store == null)
{
return NotFound();
}
if (!store.AnyPaymentMethodAvailable())
{
TempData.SetStatusMessageModel(new StatusMessageModel
{
Severity = StatusMessageModel.StatusSeverity.Error,
Html = $"To create a {vm.AppType} app, you need to <a href='{Url.Action(nameof(UIStoresController.SetupWallet), "UIStores", new { cryptoCode = _networkProvider.DefaultNetwork.CryptoCode, storeId })}' class='alert-link'>set up a wallet</a> first",
AllowDismiss = false
});
return View(vm);
}
vm.StoreId = store.Id;
var type = _appService.GetAppType(vm.AppType ?? vm.SelectedAppType);
if (type is null)