From a077245b3ac88cd38bf0cffd857a02471a319d31 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 14 Mar 2018 11:17:05 +0000 Subject: [PATCH] Console: Hide links to webapps that are not running (ticket #2161) Hide link to /configplugins if disabled --- .../i2p/router/web/helpers/HomeHelper.java | 16 +++++++++ .../i2p/router/web/helpers/NetDbRenderer.java | 16 ++++++--- .../web/helpers/SummaryBarRenderer.java | 33 ++++++++++++------- .../i2p/router/web/helpers/SummaryHelper.java | 15 +++++++-- 4 files changed, 60 insertions(+), 20 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java index ff0a54edb..f2f4ec48d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java @@ -14,6 +14,8 @@ import net.i2p.router.web.ConfigUpdateHandler; import net.i2p.router.web.HelperBase; import net.i2p.router.web.Messages; import net.i2p.router.web.NavHelper; +import net.i2p.router.web.PluginStarter; +import net.i2p.router.web.WebAppStarter; import net.i2p.util.PortMapper; /** @@ -194,6 +196,20 @@ public class HomeHelper extends HelperBase { ':' + _context.portMapper().getPort(PortMapper.SVC_EEPSITE, 7658) + '/'; } else { url = app.url; + // check for disabled webapps and other things + if (url.equals("/dns")) { + if (!WebAppStarter.isWebAppRunning("susidns")) + continue; + } else if (url.equals("/webmail")) { + if (!WebAppStarter.isWebAppRunning("susimail")) + continue; + } else if (url.equals("/torrents")) { + if (!WebAppStarter.isWebAppRunning("i2psnark")) + continue; + } else if (url.equals("/configplugins")) { + if (!PluginStarter.pluginsEnabled(_context)) + continue; + } } buf.append("\n
\n" + "
" + diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java index ffc44d104..6bf6bffa6 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java @@ -38,6 +38,7 @@ import net.i2p.router.TunnelPoolSettings; import net.i2p.router.util.HashDistance; // debug import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.router.web.Messages; +import net.i2p.router.web.WebAppStarter; import net.i2p.util.Log; import net.i2p.util.ObjectCounter; import net.i2p.util.Translate; @@ -289,6 +290,7 @@ class NetDbRenderer { medianCount = rapCount / 2; } + boolean linkSusi = WebAppStarter.isWebAppRunning("susidns"); long now = _context.clock().now(); buf.append("
"); for (LeaseSet ls : leases) { @@ -318,13 +320,13 @@ class NetDbRenderer { if (!unpublished) { host = _context.namingService().reverseLookup(dest); } - if (unpublished || host != null) { + if (unpublished || host != null || !linkSusi) { buf.append(" colspan=\"2\""); } buf.append(">"); String b32 = dest.toBase32(); buf.append("").append(b32).append(""); - if (!unpublished) { + if (linkSusi && !unpublished) { if (host == null) { buf.append("").append("").append(dest.toBase64().substring(0, 6)).append("") - .append("\n") - .append("").append(b32).append("\n") - .append("\n").append(b32).append("\n"); + if (linkSusi) { + buf.append("").append(_t("Add to local addressbook")).append(""); + } } } buf.append("\n\n"); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java index 35b087021..4761f6188 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java @@ -21,6 +21,7 @@ import net.i2p.router.web.Messages; import net.i2p.router.web.NavHelper; import net.i2p.router.web.NewsHelper; import net.i2p.router.web.StatSummarizer; +import net.i2p.router.web.WebAppStarter; import net.i2p.util.PortMapper; import net.i2p.util.SystemVersion; @@ -211,21 +212,25 @@ class SummaryBarRenderer { .append(_t("I2P Services")) .append("\n" + - "
" + + "
"); - "") .append(nbsp(_t("Email"))) - .append("\n" + + .append("\n"); + } - "") .append(nbsp(_t("Torrents"))) - .append("\n" + + .append("\n"); + } - "
\n" + - "
\n" + + "
\n"); - "") .append(nbsp(_t("Addressbook"))) .append("\n"); + } if (!StatSummarizer.isDisabled()) { buf.append("") .append(nbsp(_t("Help"))) - .append("\n" + + .append("\n"); - "") .append(nbsp(_t("Hidden Services Manager"))) - .append("\n" + + .append("\n"); + } - "") .append(nbsp(_t("Logs"))) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java index f6746dfd4..b29a6f6b2 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java @@ -28,6 +28,7 @@ import net.i2p.router.transport.TransportUtil; import net.i2p.router.web.CSSHelper; import net.i2p.router.web.HelperBase; import net.i2p.router.web.NewsHelper; +import net.i2p.router.web.WebAppStarter; import net.i2p.servlet.util.ServletUtil; import net.i2p.stat.Rate; import net.i2p.stat.RateStat; @@ -557,10 +558,18 @@ public class SummaryHelper extends HelperBase { List clients = new ArrayList(_context.clientManager().listClients()); StringBuilder buf = new StringBuilder(512); - buf.append("

"); + if (link) { + buf.append("").append(_t("Local Tunnels")) - .append("


"); + .append("\">"); + } + buf.append(_t("Local Tunnels")); + if (link) { + buf.append(""); + } + buf.append("
"); if (!clients.isEmpty()) { Collections.sort(clients, new AlphaComparator()); buf.append("");