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[] DefaultRateRules { get; set; } = Array.Empty<string>();
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return CryptoCode;
|
||||
|
|
|
@ -108,7 +108,7 @@ namespace BTCPayServer.Controllers
|
|||
if (store == null)
|
||||
return NotFound();
|
||||
|
||||
vm.CanUseInternalNode = CanUseInternalLightning();
|
||||
vm.CanUseInternalNode = CanUseInternalLightning(vm.CryptoCode);
|
||||
|
||||
if (vm.CryptoCode == null)
|
||||
{
|
||||
|
@ -122,7 +122,7 @@ namespace BTCPayServer.Controllers
|
|||
LightningSupportedPaymentMethod? paymentMethod = null;
|
||||
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");
|
||||
return View(vm);
|
||||
|
@ -364,14 +364,14 @@ namespace BTCPayServer.Controllers
|
|||
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)
|
||||
{
|
||||
vm.CanUseInternalNode = CanUseInternalLightning();
|
||||
vm.CanUseInternalNode = CanUseInternalLightning(vm.CryptoCode);
|
||||
var lightning = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store);
|
||||
|
||||
if (lightning != null)
|
||||
|
|
|
@ -64,6 +64,7 @@ namespace BTCPayServer.Controllers
|
|||
IFileService fileService,
|
||||
WebhookSender webhookNotificationManager,
|
||||
IDataProtectionProvider dataProtector,
|
||||
IOptions<LightningNetworkOptions> lightningNetworkOptions,
|
||||
IOptions<ExternalServicesOptions> externalServiceOptions)
|
||||
{
|
||||
_RateFactory = rateFactory;
|
||||
|
@ -80,6 +81,7 @@ namespace BTCPayServer.Controllers
|
|||
_fileService = fileService;
|
||||
DataProtector = dataProtector.CreateProtector("ConfigProtector");
|
||||
WebhookNotificationManager = webhookNotificationManager;
|
||||
LightningNetworkOptions = lightningNetworkOptions.Value;
|
||||
_EventAggregator = eventAggregator;
|
||||
_NetworkProvider = networkProvider;
|
||||
_ExplorerProvider = explorerProvider;
|
||||
|
@ -111,6 +113,7 @@ namespace BTCPayServer.Controllers
|
|||
|
||||
public string? GeneratedPairingCode { get; set; }
|
||||
public WebhookSender WebhookNotificationManager { get; }
|
||||
public LightningNetworkOptions LightningNetworkOptions { get; }
|
||||
public IDataProtector DataProtector { get; }
|
||||
|
||||
[TempData]
|
||||
|
|
Loading…
Add table
Reference in a new issue