From c169a7613fd88a04efb8ab955fdbed8d46a12d68 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Tue, 10 Dec 2019 14:59:30 +0000 Subject: [PATCH] wip on importing certificates --- .../com/muwire/core/filecert/CertificateManager.groovy | 7 +++++++ .../main/java/com/muwire/webui/CertificateManager.java | 2 ++ .../main/java/com/muwire/webui/CertificateServlet.java | 4 ++++ webui/src/main/js/search.js | 9 ++++++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/core/src/main/groovy/com/muwire/core/filecert/CertificateManager.groovy b/core/src/main/groovy/com/muwire/core/filecert/CertificateManager.groovy index 54c64ccf..f60fed91 100644 --- a/core/src/main/groovy/com/muwire/core/filecert/CertificateManager.groovy +++ b/core/src/main/groovy/com/muwire/core/filecert/CertificateManager.groovy @@ -130,6 +130,13 @@ class CertificateManager { return false } + public boolean isImported(Certificate certificate) { + Set forInfoHash = byInfoHash.get(certificate.infoHash) + if (forInfoHash == null) + return false + forInfoHash.contains(certificate) + } + Set getByInfoHash(InfoHash infoHash) { Set rv = new HashSet<>() if (byInfoHash.containsKey(infoHash)) diff --git a/webui/src/main/java/com/muwire/webui/CertificateManager.java b/webui/src/main/java/com/muwire/webui/CertificateManager.java index 659b747f..ff8b3344 100644 --- a/webui/src/main/java/com/muwire/webui/CertificateManager.java +++ b/webui/src/main/java/com/muwire/webui/CertificateManager.java @@ -1,5 +1,6 @@ package com.muwire.webui; +import java.io.ByteArrayInputStream; import java.io.File; import java.util.Map; import java.util.Set; @@ -17,6 +18,7 @@ import com.muwire.core.filecert.UICreateCertificateEvent; import com.muwire.core.filecert.UIFetchCertificatesEvent; import com.muwire.core.filecert.UIImportCertificateEvent; +import net.i2p.data.Base64; import net.i2p.util.ConcurrentHashSet; public class CertificateManager { diff --git a/webui/src/main/java/com/muwire/webui/CertificateServlet.java b/webui/src/main/java/com/muwire/webui/CertificateServlet.java index fba1ea6e..3aec33c9 100644 --- a/webui/src/main/java/com/muwire/webui/CertificateServlet.java +++ b/webui/src/main/java/com/muwire/webui/CertificateServlet.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.muwire.core.Core; import com.muwire.core.InfoHash; import com.muwire.core.Persona; import com.muwire.core.filecert.Certificate; @@ -21,6 +22,7 @@ import net.i2p.data.DataHelper; public class CertificateServlet extends HttpServlet { private CertificateManager certificateManager; + private Core core; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { @@ -62,6 +64,7 @@ public class CertificateServlet extends HttpServlet { sb.append("").append(Util.escapeHTMLinXML(certificate.getComment().getName())).append(""); sb.append("").append(DataHelper.formatTime(certificate.getTimestamp())).append(""); sb.append("").append(certificate.toBase64()).append(""); + sb.append("").append(core.getCertificateManager().isImported(certificate)).append(""); sb.append(""); } sb.append(""); @@ -129,6 +132,7 @@ public class CertificateServlet extends HttpServlet { @Override public void init(ServletConfig config) throws ServletException { certificateManager = (CertificateManager) config.getServletContext().getAttribute("certificateManager"); + core = (Core) config.getServletContext().getAttribute("core"); } diff --git a/webui/src/main/js/search.js b/webui/src/main/js/search.js index d7c6db39..5ef8a596 100644 --- a/webui/src/main/js/search.js +++ b/webui/src/main/js/search.js @@ -183,6 +183,7 @@ class Certificate { } catch(ignore) {} this.timestamp = xmlNode.getElementsByTagName("Timestamp")[0].childNodes[0].nodeValue this.base64 = xmlNode.getElementsByTagName("Base64")[0].childNodes[0].nodeValue + this.imported = xmlNode.getElementsByTagName("Imported")[0].childNodes[0].nodeValue } renderRow() { @@ -195,6 +196,12 @@ class Certificate { html += "" + this.name + "" html += "" + commentPresent + "" html += "" + this.timestamp + "" + + if (this.imported == "true") + html += "" + _t("Imported") + "" + else + html += "" + _t("Import") + "" + html += "" return html } @@ -221,7 +228,7 @@ class CertificateResponse { html += " " html += _t("Certificates") + " " + this.certificates.length + "/" + this.total - var headers = [_t("Issuer"), _t("Name"), _t("Comment"), _t("Timestamp")] + var headers = [_t("Issuer"), _t("Name"), _t("Comment"), _t("Timestamp"), _t("Import")] html += "
" html += "" var i
" + headers.join("") + "