Author: batosai
Date: 2008-09-14 19:27:04 +0000 (Sun, 14 Sep 2008)
New Revision: 22660
Modified:
trunk/plugins/WoT/src/plugins/WoT/WebInterface.java
trunk/plugins/WoT/src/plugins/WoT/WoT.java
Log:
Added the possibility to delete an OwnIdentity (bug #2578)
Modified: trunk/plugins/WoT/src/plugins/WoT/WebInterface.java
===================================================================
--- trunk/plugins/WoT/src/plugins/WoT/WebInterface.java 2008-09-14 19:26:16 UTC
(rev 22659)
+++ trunk/plugins/WoT/src/plugins/WoT/WebInterface.java 2008-09-14 19:27:04 UTC
(rev 22660)
@@ -115,6 +115,10 @@
editForm.addChild("input", new String[] {
"type", "name", "value" }, new String[] { "hidden", "id",
id.getRequestURI().toString() });
editForm.addChild("input", new String[] {
"type", "name", "value" }, new String[] { "submit", "edit", "Details" });
+ HTMLNode deleteForm =
pr.addFormChild(manageCell, SELF_URI, "deleteIdentity");
+ deleteForm.addChild("input", new String[] {
"type", "name", "value" }, new String[] { "hidden", "page", "deleteIdentity" });
+ deleteForm.addChild("input", new String[] {
"type", "name", "value" }, new String[] { "hidden", "id", id.getId() });
+ deleteForm.addChild("input", new String[] {
"type", "name", "value" }, new String[] { "submit", "delete", "Delete" });
}
}
@@ -448,4 +452,27 @@
contentNode.addChild(box);
return pageNode.generate();
}
+
+ public String makeDeleteIdentityPage(String id) throws
DuplicateIdentityException, UnknownIdentityException {
+ Identity identity = Identity.getById(db, id);
+
+ HTMLNode pageNode = getPageNode();
+ HTMLNode contentNode = pm.getContentNode(pageNode);
+ HTMLNode box = pm.getInfobox("Confirm identity deletion");
+ HTMLNode boxContent = pm.getContentNode(box);
+
+ boxContent.addChild(new HTMLNode("p", "You are about to delete
identity '" + identity.getNickName() + "', are you sure ?"));
+
+ if(identity instanceof OwnIdentity)
+ boxContent.addChild(new HTMLNode("p", "You might want
to backup its keys for later use..."));
+
+ HTMLNode confirmForm = pr.addFormChild(boxContent, SELF_URI,
"deleteIdentity2");
+
+ confirmForm.addChild("input", new String[] { "type", "name",
"value" }, new String[] { "hidden", "page", "deleteIdentity2" });
+ confirmForm.addChild("input", new String[] { "type", "name",
"value" }, new String[] { "hidden", "id", identity.getId() });
+ confirmForm.addChild("input", new String[] { "type", "name",
"value" }, new String[] { "submit", "confirm", "Confirm !" });
+
+ contentNode.addChild(box);
+ return pageNode.generate();
+ }
}
Modified: trunk/plugins/WoT/src/plugins/WoT/WoT.java
===================================================================
--- trunk/plugins/WoT/src/plugins/WoT/WoT.java 2008-09-14 19:26:16 UTC (rev
22659)
+++ trunk/plugins/WoT/src/plugins/WoT/WoT.java 2008-09-14 19:27:04 UTC (rev
22660)
@@ -191,6 +191,13 @@
restoreIdentity(request.getPartAsString("requestURI", 1024),
request.getPartAsString("insertURI", 1024));
return web.makeOwnIdentitiesPage();
}
+ else
if(request.getPartAsString("page",50).equals("deleteIdentity")) {
+ return
web.makeDeleteIdentityPage(request.getPartAsString("id", 1024));
+ }
+ else
if(request.getPartAsString("page",50).equals("deleteIdentity2")) {
+ deleteIdentity(request.getPartAsString("id",
1024));
+ return web.makeOwnIdentitiesPage();
+ }
else {
return web.makeHomePage();
}
@@ -200,6 +207,28 @@
}
}
+ private void deleteIdentity(String id) throws
DuplicateIdentityException, UnknownIdentityException, DuplicateScoreException,
DuplicateTrustException {
+ Identity identity = Identity.getById(db, id);
+
+ // Remove all scores
+ ObjectSet<Score> scores = identity.getScores(db);
+ while (scores.hasNext()) db.delete(scores.next());
+
+ // Remove all received trusts
+ ObjectSet<Trust> receivedTrusts =
identity.getReceivedTrusts(db);
+ while (receivedTrusts.hasNext())
db.delete(receivedTrusts.next());
+
+ // Remove all given trusts and update trustees' scores
+ ObjectSet<Trust> givenTrusts = identity.getGivenTrusts(db);
+ while (givenTrusts.hasNext()) {
+ Trust givenTrust = givenTrusts.next();
+ db.delete(givenTrust);
+ givenTrust.getTrustee().updateScore(db);
+ }
+
+ db.delete(identity);
+ }
+
private void restoreIdentity(String requestURI, String insertURI)
throws InvalidParameterException, MalformedURLException, Db4oIOException,
DatabaseClosedException, DuplicateScoreException, DuplicateIdentityException,
DuplicateTrustException {
OwnIdentity id;