mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-19 06:54:19 +01:00
Lightning: Link to services directly (#3593)
* Allow to access fake LN services in dev mode * Link directly to Lightning services Closes #3552. * Fix typo
This commit is contained in:
@@ -674,7 +674,8 @@ namespace BTCPayServer.Tests
|
|||||||
s.LogIn(userId);
|
s.LogIn(userId);
|
||||||
// Make sure after login, we are not redirected to the PoS
|
// Make sure after login, we are not redirected to the PoS
|
||||||
Assert.DoesNotContain("Tea shop", s.Driver.PageSource);
|
Assert.DoesNotContain("Tea shop", s.Driver.PageSource);
|
||||||
// We are only if explicitely going to /
|
|
||||||
|
// We are only if explicitly going to /
|
||||||
s.GoToUrl("/");
|
s.GoToUrl("/");
|
||||||
Assert.Contains("Tea shop", s.Driver.PageSource);
|
Assert.Contains("Tea shop", s.Driver.PageSource);
|
||||||
s.Driver.Navigate().Back();
|
s.Driver.Navigate().Back();
|
||||||
@@ -696,7 +697,8 @@ namespace BTCPayServer.Tests
|
|||||||
s.LogIn(userId);
|
s.LogIn(userId);
|
||||||
// Make sure after login, we are not redirected to the PoS
|
// Make sure after login, we are not redirected to the PoS
|
||||||
Assert.DoesNotContain("Tea shop", s.Driver.PageSource);
|
Assert.DoesNotContain("Tea shop", s.Driver.PageSource);
|
||||||
// We are only if explicitely going to /
|
|
||||||
|
// We are only if explicitly going to /
|
||||||
s.GoToUrl("/");
|
s.GoToUrl("/");
|
||||||
Assert.Contains("Tea shop", s.Driver.PageSource);
|
Assert.Contains("Tea shop", s.Driver.PageSource);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,26 +82,28 @@ namespace BTCPayServer.Configuration
|
|||||||
// Read access key from cookie file
|
// Read access key from cookie file
|
||||||
if (connectionString.CookieFilePath != null)
|
if (connectionString.CookieFilePath != null)
|
||||||
{
|
{
|
||||||
string cookieFileContent = null;
|
bool isFake = connectionString.CookieFilePath == "fake"; // Hacks for testing
|
||||||
bool isFake = false;
|
string cookieFileContent = isFake ? "fake" : null;
|
||||||
|
if (!isFake)
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
cookieFileContent = await System.IO.File.ReadAllTextAsync(connectionString.CookieFilePath);
|
cookieFileContent = await System.IO.File.ReadAllTextAsync(connectionString.CookieFilePath);
|
||||||
isFake = connectionString.CookieFilePath == "fake";
|
|
||||||
connectionString.CookieFilePath = null;
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
throw new System.IO.FileNotFoundException("Cookie file path not found", ex);
|
throw new System.IO.FileNotFoundException("Cookie file path not found", ex);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
connectionString.CookieFilePath = null;
|
||||||
|
|
||||||
if (serviceType == ExternalServiceTypes.RTL || serviceType == ExternalServiceTypes.Configurator || serviceType == ExternalServiceTypes.ThunderHub)
|
if (serviceType == ExternalServiceTypes.RTL || serviceType == ExternalServiceTypes.Configurator || serviceType == ExternalServiceTypes.ThunderHub)
|
||||||
{
|
{
|
||||||
connectionString.AccessKey = cookieFileContent;
|
connectionString.AccessKey = cookieFileContent;
|
||||||
}
|
}
|
||||||
else if (serviceType == ExternalServiceTypes.Spark)
|
else if (serviceType == ExternalServiceTypes.Spark)
|
||||||
{
|
{
|
||||||
var cookie = (isFake ? "fake:fake:fake" // Hacks for testing
|
var cookie = (isFake ? "fake:fake:fake" : cookieFileContent).Split(':');
|
||||||
: cookieFileContent).Split(':');
|
|
||||||
if (cookie.Length >= 3)
|
if (cookie.Length >= 3)
|
||||||
{
|
{
|
||||||
connectionString.AccessKey = cookie[2];
|
connectionString.AccessKey = cookie[2];
|
||||||
|
|||||||
@@ -49,13 +49,15 @@ namespace BTCPayServer.Controllers
|
|||||||
{
|
{
|
||||||
var services = _externalServiceOptions.Value.ExternalServices.ToList()
|
var services = _externalServiceOptions.Value.ExternalServices.ToList()
|
||||||
.Where(service => _externalServiceTypes.Contains(service.Type))
|
.Where(service => _externalServiceTypes.Contains(service.Type))
|
||||||
.Select(service => new AdditionalServiceViewModel
|
.Select(async service => new AdditionalServiceViewModel
|
||||||
{
|
{
|
||||||
DisplayName = service.DisplayName,
|
DisplayName = service.DisplayName,
|
||||||
ServiceName = service.ServiceName,
|
ServiceName = service.ServiceName,
|
||||||
CryptoCode = service.CryptoCode,
|
CryptoCode = service.CryptoCode,
|
||||||
Type = service.Type.ToString()
|
Type = service.Type.ToString(),
|
||||||
|
Link = await GetServiceLink(service)
|
||||||
})
|
})
|
||||||
|
.Select(t => t.Result)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
// other services
|
// other services
|
||||||
@@ -376,6 +378,7 @@ namespace BTCPayServer.Controllers
|
|||||||
.FirstOrDefault(d => d.PaymentId == id);
|
.FirstOrDefault(d => d.PaymentId == id);
|
||||||
return existing;
|
return existing;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LNURLPaySupportedPaymentMethod? GetExistingLNURLSupportedPaymentMethod(string cryptoCode, StoreData store)
|
private LNURLPaySupportedPaymentMethod? GetExistingLNURLSupportedPaymentMethod(string cryptoCode, StoreData store)
|
||||||
{
|
{
|
||||||
var id = new PaymentMethodId(cryptoCode, PaymentTypes.LNURLPay);
|
var id = new PaymentMethodId(cryptoCode, PaymentTypes.LNURLPay);
|
||||||
@@ -384,5 +387,12 @@ namespace BTCPayServer.Controllers
|
|||||||
.FirstOrDefault(d => d.PaymentId == id);
|
.FirstOrDefault(d => d.PaymentId == id);
|
||||||
return existing;
|
return existing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<string> GetServiceLink(ExternalService service)
|
||||||
|
{
|
||||||
|
var connectionString = await service.ConnectionString.Expand(Request.GetAbsoluteUriNoPathBase(), service.Type, _BtcpayServerOptions.NetworkType);
|
||||||
|
var tokenParam = service.Type == ExternalServiceTypes.ThunderHub ? "token" : "access-key";
|
||||||
|
return $"{connectionString.Server}?{tokenParam}={connectionString.AccessKey}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,11 @@
|
|||||||
"BTCPAY_BTCEXTERNALLNDGRPC": "type=lnd-grpc;server=https://lnd:lnd@127.0.0.1:53280/;allowinsecure=true",
|
"BTCPAY_BTCEXTERNALLNDGRPC": "type=lnd-grpc;server=https://lnd:lnd@127.0.0.1:53280/;allowinsecure=true",
|
||||||
"BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=https://lnd:lnd@127.0.0.1:53280/lnd-rest/btc/;allowinsecure=true;macaroonfilepath=D:\\admin.macaroon",
|
"BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=https://lnd:lnd@127.0.0.1:53280/lnd-rest/btc/;allowinsecure=true;macaroonfilepath=D:\\admin.macaroon",
|
||||||
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
||||||
|
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake",
|
||||||
|
"BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;",
|
||||||
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
||||||
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
||||||
"BTCPAY_DISABLE-REGISTRATION": "false",
|
"BTCPAY_DISABLE-REGISTRATION": "false",
|
||||||
@@ -44,6 +49,9 @@
|
|||||||
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
||||||
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
|
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
|
||||||
"BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake",
|
"BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake",
|
||||||
|
"BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;",
|
||||||
"BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator",
|
"BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator",
|
||||||
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
||||||
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
||||||
@@ -51,7 +59,6 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
"BTCPAY_CHAINS": "btc",
|
"BTCPAY_CHAINS": "btc",
|
||||||
"BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver",
|
"BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver",
|
||||||
"BTCPAY_EXTERNALSERVICES": "totoservice:totolink;",
|
|
||||||
"BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622",
|
"BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622",
|
||||||
"BTCPAY_SSHPASSWORD": "opD3i2282D",
|
"BTCPAY_SSHPASSWORD": "opD3i2282D",
|
||||||
"BTCPAY_DEBUGLOG": "debug.log",
|
"BTCPAY_DEBUGLOG": "debug.log",
|
||||||
@@ -81,6 +88,9 @@
|
|||||||
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
|
||||||
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
|
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
|
||||||
"BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake",
|
"BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake",
|
||||||
|
"BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake",
|
||||||
|
"BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;",
|
||||||
"BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator",
|
"BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator",
|
||||||
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
"BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/",
|
||||||
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
"BTCPAY_ALLOW-ADMIN-REGISTRATION": "true",
|
||||||
@@ -88,7 +98,6 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
"BTCPAY_CHAINS": "btc,ltc,lbtc",
|
"BTCPAY_CHAINS": "btc,ltc,lbtc",
|
||||||
"BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver",
|
"BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver",
|
||||||
"BTCPAY_EXTERNALSERVICES": "totoservice:totolink;",
|
|
||||||
"BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622",
|
"BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622",
|
||||||
"BTCPAY_SSHPASSWORD": "opD3i2282D",
|
"BTCPAY_SSHPASSWORD": "opD3i2282D",
|
||||||
"BTCPAY_DEBUGLOG": "debug.log",
|
"BTCPAY_DEBUGLOG": "debug.log",
|
||||||
|
|||||||
Reference in New Issue
Block a user