mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-04 18:06:08 +01:00
Disable internal node options if no internal node configured (#4315)
This commit is contained in:
parent
2bd4a680ad
commit
1e2acfb296
3 changed files with 9 additions and 5 deletions
|
@ -137,6 +137,7 @@ namespace BTCPayServer
|
||||||
|
|
||||||
public string CryptoImagePath { get; set; }
|
public string CryptoImagePath { get; set; }
|
||||||
public string[] DefaultRateRules { get; set; } = Array.Empty<string>();
|
public string[] DefaultRateRules { get; set; } = Array.Empty<string>();
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return CryptoCode;
|
return CryptoCode;
|
||||||
|
|
|
@ -108,7 +108,7 @@ namespace BTCPayServer.Controllers
|
||||||
if (store == null)
|
if (store == null)
|
||||||
return NotFound();
|
return NotFound();
|
||||||
|
|
||||||
vm.CanUseInternalNode = CanUseInternalLightning();
|
vm.CanUseInternalNode = CanUseInternalLightning(vm.CryptoCode);
|
||||||
|
|
||||||
if (vm.CryptoCode == null)
|
if (vm.CryptoCode == null)
|
||||||
{
|
{
|
||||||
|
@ -122,7 +122,7 @@ namespace BTCPayServer.Controllers
|
||||||
LightningSupportedPaymentMethod? paymentMethod = null;
|
LightningSupportedPaymentMethod? paymentMethod = null;
|
||||||
if (vm.LightningNodeType == LightningNodeType.Internal)
|
if (vm.LightningNodeType == LightningNodeType.Internal)
|
||||||
{
|
{
|
||||||
if (!CanUseInternalLightning())
|
if (!CanUseInternalLightning(network.CryptoCode))
|
||||||
{
|
{
|
||||||
ModelState.AddModelError(nameof(vm.ConnectionString), "You are not authorized to use the internal lightning node");
|
ModelState.AddModelError(nameof(vm.ConnectionString), "You are not authorized to use the internal lightning node");
|
||||||
return View(vm);
|
return View(vm);
|
||||||
|
@ -364,14 +364,14 @@ namespace BTCPayServer.Controllers
|
||||||
return RedirectToAction(nameof(LightningSettings), new { storeId, cryptoCode });
|
return RedirectToAction(nameof(LightningSettings), new { storeId, cryptoCode });
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CanUseInternalLightning()
|
private bool CanUseInternalLightning(string cryptoCode)
|
||||||
{
|
{
|
||||||
return User.IsInRole(Roles.ServerAdmin) || _policiesSettings.AllowLightningInternalNodeForAll;
|
return LightningNetworkOptions.InternalLightningByCryptoCode.ContainsKey(cryptoCode.ToUpperInvariant()) && (User.IsInRole(Roles.ServerAdmin) || _policiesSettings.AllowLightningInternalNodeForAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetExistingValues(StoreData store, LightningNodeViewModel vm)
|
private void SetExistingValues(StoreData store, LightningNodeViewModel vm)
|
||||||
{
|
{
|
||||||
vm.CanUseInternalNode = CanUseInternalLightning();
|
vm.CanUseInternalNode = CanUseInternalLightning(vm.CryptoCode);
|
||||||
var lightning = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store);
|
var lightning = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store);
|
||||||
|
|
||||||
if (lightning != null)
|
if (lightning != null)
|
||||||
|
|
|
@ -64,6 +64,7 @@ namespace BTCPayServer.Controllers
|
||||||
IFileService fileService,
|
IFileService fileService,
|
||||||
WebhookSender webhookNotificationManager,
|
WebhookSender webhookNotificationManager,
|
||||||
IDataProtectionProvider dataProtector,
|
IDataProtectionProvider dataProtector,
|
||||||
|
IOptions<LightningNetworkOptions> lightningNetworkOptions,
|
||||||
IOptions<ExternalServicesOptions> externalServiceOptions)
|
IOptions<ExternalServicesOptions> externalServiceOptions)
|
||||||
{
|
{
|
||||||
_RateFactory = rateFactory;
|
_RateFactory = rateFactory;
|
||||||
|
@ -80,6 +81,7 @@ namespace BTCPayServer.Controllers
|
||||||
_fileService = fileService;
|
_fileService = fileService;
|
||||||
DataProtector = dataProtector.CreateProtector("ConfigProtector");
|
DataProtector = dataProtector.CreateProtector("ConfigProtector");
|
||||||
WebhookNotificationManager = webhookNotificationManager;
|
WebhookNotificationManager = webhookNotificationManager;
|
||||||
|
LightningNetworkOptions = lightningNetworkOptions.Value;
|
||||||
_EventAggregator = eventAggregator;
|
_EventAggregator = eventAggregator;
|
||||||
_NetworkProvider = networkProvider;
|
_NetworkProvider = networkProvider;
|
||||||
_ExplorerProvider = explorerProvider;
|
_ExplorerProvider = explorerProvider;
|
||||||
|
@ -111,6 +113,7 @@ namespace BTCPayServer.Controllers
|
||||||
|
|
||||||
public string? GeneratedPairingCode { get; set; }
|
public string? GeneratedPairingCode { get; set; }
|
||||||
public WebhookSender WebhookNotificationManager { get; }
|
public WebhookSender WebhookNotificationManager { get; }
|
||||||
|
public LightningNetworkOptions LightningNetworkOptions { get; }
|
||||||
public IDataProtector DataProtector { get; }
|
public IDataProtector DataProtector { get; }
|
||||||
|
|
||||||
[TempData]
|
[TempData]
|
||||||
|
|
Loading…
Add table
Reference in a new issue