This version has a semi working account deletion with emails that are sent along the way, not quite ready for live as key state is not stored and multiple keys can be made, although the latest revision is the one that will work.

This commit is contained in:
JSQui
2022-10-14 23:26:14 -07:00
parent 9aef612eae
commit 83415ee595
2 changed files with 120 additions and 10 deletions

View File

@ -25,6 +25,8 @@ import java.util.List;
import java.util.Random;
import java.util.UUID;
import static com.jamesquinley.Asecure.electronicMailHandler.offBoarding;
import static com.jamesquinley.Asecure.electronicMailHandler.otkDeletionEmail;
import static com.jamesquinley.Asecure.secureCalls.accountMigrationComplete;
import static com.mongodb.client.model.Filters.eq;
import static java.util.concurrent.TimeUnit.SECONDS;
@ -1556,17 +1558,17 @@ public class delegationServices {
if (requesttype == 68) {
System.out.println("Verifying OTK");
String userKey = (String) Lrequest.get("otk");
String userName = (String) Lrequest.get("recoverUser");
String serverUserName;
String clientUUID = (String) Lrequest.get("uuid");
String serverUUID;
userKey = userKey.toUpperCase();
System.out.println(userKey);
Document accountServer;
try {
accountServer = accountS.find(eq("tempKey", userKey)).first();
serverUserName = (String) accountServer.get("User");
accountServer = accountS.find(eq("delOTK", userKey)).first();
serverUUID = (String) accountServer.get("UUID");
if (accountServer.get("Status").equals(true))
{
if (userName.equalsIgnoreCase(serverUserName))
if (clientUUID.equalsIgnoreCase(serverUUID))
{
System.out.println("This key is correct.");
BasicDBObject searchQuery = new BasicDBObject();
@ -1575,14 +1577,15 @@ public class delegationServices {
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",55));
new BasicDBObject().append("type",69));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
offBoarding((String)accountServer.get("Email"), (String)accountServer.get("User"), (String)accountServer.get("FName"));
delegationTimer.DeleteTargetRequest(ClientID);
accountS.deleteOne(accountServer);
}
else
{
@ -1593,7 +1596,7 @@ public class delegationServices {
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",56));
new BasicDBObject().append("type",70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
@ -1630,9 +1633,24 @@ public class delegationServices {
char randomChar = alphabet.charAt(index);
sb.append(randomChar);
}
String OTK = sb.toString();
String accountUUID = (String) Lrequest.get("uuid");
BasicDBObject deleteKey = new BasicDBObject();
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("UUID", accountUUID);
deleteKey.append("$set",
new BasicDBObject().append("delOTK",OTK));
accountS.updateOne(searchQuery, deleteKey);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("clientid", ClientID);
BasicDBObject clearUO = new BasicDBObject();
clearUO.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(clearCL, clearUO);
System.out.println("Finished Del Generation");
Document linkedAccount = accountS.find(eq("UUID", accountUUID)).first();
otkDeletionEmail((String)linkedAccount.get("Email"),OTK,(String)linkedAccount.get("User"));
com.jamesquinley.DelegationServices.delegationTimer.DeleteTargetRequestQuick(ClientID);
}
} else {
@ -1649,6 +1667,12 @@ public class delegationServices {
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("clientid", ClientID);
BasicDBObject clearUO = new BasicDBObject();
clearUO.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(clearUO, clearUO);
delegationTimer.DeleteTargetRequest(ClientID);
}