mirror of https://github.com/zlatinb/muwire
ability to certify files
parent
e0d006ec69
commit
f69d4027db
|
@ -1,5 +1,6 @@
|
|||
package com.muwire.webui;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
@ -7,10 +8,12 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
import com.muwire.core.Core;
|
||||
import com.muwire.core.InfoHash;
|
||||
import com.muwire.core.Persona;
|
||||
import com.muwire.core.SharedFile;
|
||||
import com.muwire.core.filecert.Certificate;
|
||||
import com.muwire.core.filecert.CertificateFetchEvent;
|
||||
import com.muwire.core.filecert.CertificateFetchStatus;
|
||||
import com.muwire.core.filecert.CertificateFetchedEvent;
|
||||
import com.muwire.core.filecert.UICreateCertificateEvent;
|
||||
import com.muwire.core.filecert.UIFetchCertificatesEvent;
|
||||
import com.muwire.core.filecert.UIImportCertificateEvent;
|
||||
|
||||
|
@ -74,6 +77,15 @@ public class CertificateManager {
|
|||
core.getEventBus().publish(event);
|
||||
}
|
||||
|
||||
void certify(File file) {
|
||||
SharedFile sf = core.getFileManager().getFileToSharedFile().get(file);
|
||||
if (sf == null)
|
||||
return;
|
||||
UICreateCertificateEvent event = new UICreateCertificateEvent();
|
||||
event.setSharedFile(sf);
|
||||
core.getEventBus().publish(event);
|
||||
}
|
||||
|
||||
static class CertificateRequest {
|
||||
private final Persona user;
|
||||
private final InfoHash infoHash;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.muwire.webui;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
|
@ -114,6 +115,14 @@ public class CertificateServlet extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
certificateManager.importCertificate(certificate);
|
||||
} else if (action.equals("certify")) {
|
||||
String path = req.getParameter("file");
|
||||
if (path == null) {
|
||||
resp.sendError(403,"Bad param");
|
||||
return;
|
||||
}
|
||||
File file = Util.getFromPathElements(path);
|
||||
certificateManager.certify(file);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ public class FilesServlet extends HttpServlet {
|
|||
resp.sendError(403,"Bad param");
|
||||
return;
|
||||
}
|
||||
File file = getFromPathElements(pathElements);
|
||||
File file = Util.getFromPathElements(pathElements);
|
||||
if (file == null) {
|
||||
resp.sendError(403, "Bad param");
|
||||
return;
|
||||
|
@ -148,7 +148,7 @@ public class FilesServlet extends HttpServlet {
|
|||
resp.sendError(403,"Bad param");
|
||||
return;
|
||||
}
|
||||
File file = getFromPathElements(pathElements);
|
||||
File file = Util.getFromPathElements(pathElements);
|
||||
if (file == null) {
|
||||
resp.sendError(403, "Bad param");
|
||||
return;
|
||||
|
@ -159,19 +159,5 @@ public class FilesServlet extends HttpServlet {
|
|||
fileManager.comment(file, comment);
|
||||
}
|
||||
}
|
||||
|
||||
private static File getFromPathElements(String pathElements) {
|
||||
File current = null;
|
||||
for (String element : DataHelper.split(pathElements,",")) {
|
||||
element = Util.unescapeHTMLinXML(Base64.decodeToString(element));
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
if (current == null)
|
||||
current = new File(element);
|
||||
else
|
||||
current = new File(current, element);
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package com.muwire.webui;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.Base64;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.util.Translate;
|
||||
|
||||
|
@ -88,6 +90,21 @@ public class Util {
|
|||
}
|
||||
return unescaped;
|
||||
}
|
||||
|
||||
public static File getFromPathElements(String pathElements) {
|
||||
File current = null;
|
||||
for (String element : DataHelper.split(pathElements,",")) {
|
||||
element = unescapeHTMLinXML(Base64.decodeToString(element));
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
if (current == null)
|
||||
current = new File(element);
|
||||
else
|
||||
current = new File(current, element);
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a JSON-encoded mapping of translations needed for the javascript,
|
||||
|
|
Loading…
Reference in New Issue