diff --git a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java index a01ccda..92b30db 100644 --- a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java +++ b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java @@ -82,7 +82,9 @@ public class delegationServices { static int RequestR; //still need to config public static String lastNet = null; - public static String Macid = null; + public static String IPA = null; + private static Boolean legacy = false; + private static double version = 0.0; public static void banUserID(String UUID) { BasicDBObject searchQuery = new BasicDBObject(); @@ -103,10 +105,23 @@ public class delegationServices { System.out.println("This request has opted out of CID."); } try { - Macid = (String) Lrequest.get("net"); + IPA = (String) Lrequest.get("net"); } catch (Exception exrp) { System.out.println("This request has opted out of NET."); } + try { + version = (double) Lrequest.get("apiversion"); + if (version >= 2.0) { + legacy =false; + System.out.println("nonlegacy"); + } else { + legacy =true; + System.out.println("legacy"); + } + } catch (Exception exrp) { + legacy = true; + System.out.println("legacy"); + } String RG = (String) Lrequest.get("rg"); Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first(); @@ -563,18 +578,30 @@ public class delegationServices { new BasicDBObject().append("status", true)); updateQuery8.append("$set", new BasicDBObject().append("keychainUUID", keychainUUID)); - if (Filter.get("customHome").equals(true)) { - BasicDBObject updateQuery11 = new BasicDBObject(); - updateQuery11.append("$set", - new BasicDBObject().append("home", Filter.get("valHome"))); - updateQuery12.append("$set", - new BasicDBObject().append("hs",true)); - dCollection.updateOne(searchQuery, updateQuery11); - dCollection.updateOne(searchQuery, updateQuery12); + if (legacy) { + if ((Boolean) Filter.get("legacyPRDisable") == true) { + BasicDBObject updateQuery11 = new BasicDBObject(); + updateQuery11.append("$set", + new BasicDBObject().append("home", Filter.get("legacyHome"))); + updateQuery12.append("$set", + new BasicDBObject().append("hs",true)); + dCollection.updateOne(searchQuery, updateQuery11); + dCollection.updateOne(searchQuery, updateQuery12); + } } else { - updateQuery12.append("$set", - new BasicDBObject().append("hs",false)); - dCollection.updateOne(searchQuery, updateQuery12); + if (Filter.get("customHome").equals(true)) { + BasicDBObject updateQuery11 = new BasicDBObject(); + updateQuery11.append("$set", + new BasicDBObject().append("home", Filter.get("valHome"))); + updateQuery12.append("$set", + new BasicDBObject().append("hs",true)); + dCollection.updateOne(searchQuery, updateQuery11); + dCollection.updateOne(searchQuery, updateQuery12); + } else { + updateQuery12.append("$set", + new BasicDBObject().append("hs",false)); + dCollection.updateOne(searchQuery, updateQuery12); + } } /* if (Filter.get("customGreeting").equals(true)) { @@ -603,7 +630,7 @@ public class delegationServices { dCollection.updateOne(searchQuery, updateQuery8); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); - localNet.macRead(Macid, lastNet, Email, UserName, Token); + localNet.macRead(IPA, lastNet, Email, UserName, Token); } else { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("_id", ClientID); @@ -834,6 +861,7 @@ public class delegationServices { BasicDBObject updateQuery8 = new BasicDBObject(); BasicDBObject updateQuery9 = new BasicDBObject(); BasicDBObject updateQuery10 = new BasicDBObject(); + BasicDBObject updateQuery12 = new BasicDBObject(); updateQuery.append("$set", new BasicDBObject().append("type", 8)); updateQuery2.append("$set", @@ -850,18 +878,30 @@ public class delegationServices { new BasicDBObject().append("keychainUUID", keychainUUID)); updateQuery6.append("$set", new BasicDBObject().append("status", true)); - if (Filter.get("customHome").equals(true)) { - BasicDBObject updateQuery11 = new BasicDBObject(); - updateQuery11.append("$set", - new BasicDBObject().append("home", Filter.get("valHome"))); - updateQuery10.append("$set", - new BasicDBObject().append("hs",true)); - dCollection.updateOne(searchQuery, updateQuery11); - dCollection.updateOne(searchQuery, updateQuery10); + if (legacy) { + if ((Boolean) Filter.get("legacyPRDisable") == true) { + BasicDBObject updateQuery11 = new BasicDBObject(); + updateQuery11.append("$set", + new BasicDBObject().append("home", Filter.get("legacyHome"))); + updateQuery12.append("$set", + new BasicDBObject().append("hs",true)); + dCollection.updateOne(searchQuery, updateQuery11); + dCollection.updateOne(searchQuery, updateQuery12); + } } else { - updateQuery10.append("$set", - new BasicDBObject().append("hs",false)); - dCollection.updateOne(searchQuery, updateQuery10); + if (Filter.get("customHome").equals(true)) { + BasicDBObject updateQuery11 = new BasicDBObject(); + updateQuery11.append("$set", + new BasicDBObject().append("home", Filter.get("valHome"))); + updateQuery12.append("$set", + new BasicDBObject().append("hs",true)); + dCollection.updateOne(searchQuery, updateQuery11); + dCollection.updateOne(searchQuery, updateQuery12); + } else { + updateQuery12.append("$set", + new BasicDBObject().append("hs",false)); + dCollection.updateOne(searchQuery, updateQuery12); + } } System.out.println("Sending Info To Forwarding Server"); dCollection.updateOne(searchQuery, updateQuery8); @@ -875,7 +915,7 @@ public class delegationServices { dCollection.updateOne(searchQuery, updateQuery6); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); - localNet.macRead(Macid, lastNet, Email, UserName, TKN); + localNet.macRead(IPA, lastNet, Email, UserName, TKN); } else { System.out.println("Login Failure"); BasicDBObject searchQuery = new BasicDBObject(); @@ -1092,163 +1132,9 @@ public class delegationServices { } if (requesttype == 10) { - System.out.println("Account Creation Request"); - Document DServer = dCollection.find(eq("_id", ClientID)).first(); - String User = (String) DServer.get("User"); - String Password = (String) DServer.get("Password"); - String Email = (String) DServer.get("Email"); - String FName = (String) DServer.get("FName"); - if ((Boolean) Filter.get("creationEnabled")) { - String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; - StringBuilder sbt = new StringBuilder(); - Random random = new Random(); - int tokenlength = 60; - for (int i = 0; i < tokenlength; i++) { - int index = random.nextInt(sourcet.length()); - char randomChar = sourcet.charAt(index); - sbt.append(randomChar); - } - String Token = "OCST" + sbt.toString(); - //Above makes token, it will be remade if it already exists - String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; - StringBuilder sb = new StringBuilder(); - int length = 40; - for (int i = 0; i < length; i++) { - int index = random.nextInt(source.length()); - char randomChar = source.charAt(index); - sb.append(randomChar); - } - String UUID = sb.toString(); - //Above makes UUID, will be remade if it already exists. - - try { - - Document DupeEmail = accountS.find(eq("Email", Email)).first(); - String DUPEEMAIL = (String) DupeEmail.get("Email"); - if (DUPEEMAIL.equals(null)) { - Document DupeUser = accountS.find(eq("User", User)).first(); - String DUPE = (String) DupeUser.get("User"); - } - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("_id", ClientID); - - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery1 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 6)); - updateQuery1.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery1); - delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); - } catch (Exception exr) { - System.out.println("Username & Email Is Open"); - try { - Document DupeToken = accountS.find(eq("Token", Token)).first(); - String DupeToke1n = (String) DupeToken.get("Token"); - System.out.println("Got Token from request"); - Boolean TokenOpen = false; - while (TokenOpen == false) { - for (int i = 0; i < tokenlength; i++) { - int index = random.nextInt(sourcet.length()); - char randomChar = sourcet.charAt(index); - sbt.append(randomChar); - } - Token = sbt.toString(); - try { - DupeToken = accountS.find(eq("Token", Token)).first(); - DupeToke1n = (String) DupeToken.get("Token"); - System.out.println("Token Is Reserved, Try Again."); - for (int i = 0; i < tokenlength; i++) { - int index = random.nextInt(sourcet.length()); - char randomChar = sourcet.charAt(index); - sbt.append(randomChar); - } - } catch (Exception exDr) { - TokenOpen = true; - System.out.println("Token Free (While EXP)"); - } - } - } catch (Exception token) { - System.out.println("Working on UUID"); - try { - Document DupeUUID = accountS.find(eq("UUID", UUID)).first(); - String DupeUUIDS = (String) DupeUUID.get("UUID"); - System.out.println("Got Gen UUID"); - Boolean UUIDOPEN = false; - while (UUIDOPEN == false) { - length = 40; - sb = new StringBuilder(); - for (int i = 0; i < length; i++) { - int index = random.nextInt(source.length()); - char randomChar = source.charAt(index); - sb.append(randomChar); - } - String UUIDGEN = sb.toString(); - try { - System.out.println("Retry UUID"); - DupeUUID = accountS.find(eq("UUID", UUID)).first(); - DupeUUIDS = (String) DupeUUID.get("UUID"); - System.out.println("UUID Is Reserved, Try Again."); - length = 40; - sb = new StringBuilder(); - for (int i = 0; i < length; i++) { - int index = random.nextInt(source.length()); - char randomChar = source.charAt(index); - sb.append(randomChar); - } - UUIDGEN = sb.toString(); - UUID = UUIDGEN; - } catch (Exception exDr) { - UUIDOPEN = true; - System.out.println("UUID Free (While EXP)" + exDr); - } - } - } catch (NullPointerException uuid) { - System.out.println("UUID Free"); - } - System.out.println("Token Free"); - System.out.println("Token & UUID Free (Main)"); - System.out.println("Creating."); - Document createForm = new Document(); - createForm.append("User", User); - createForm.append("Password", Password); - createForm.append("Status", true); - createForm.append("Flagged", false); - createForm.append("Email", Email); - createForm.append("FName", FName); - createForm.append("Entitlements", "NA"); - createForm.append("Freinds", " "); - createForm.append("Token", Token); - createForm.append("UUID", UUID); - createForm.append("Control", 1); - createForm.append("Upgrade", 0); - createForm.append("Version", "2"); - createForm.append("keyStatus", false); - //createForm.append("Uid",uid); - createForm.append("lastNet", Macid); - accountS.insertOne(createForm); - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("_id", ClientID); - secureCalls.accountCreationComplete(Email, User, UUID); - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery1 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 4)); - updateQuery1.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery1); - System.out.println("Update Request With Finished Status"); - delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); - } - - } - } else { + if (legacy && (Boolean) Filter.get("legacyPRDisable") == true) { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("_id", ClientID); - try { secureCalls.accountCreationDisabled(Email, User);} catch (Exception ex) {System.out.println("Unable to send disabled msg to user"); - } BasicDBObject updateQuery = new BasicDBObject(); BasicDBObject updateQuery1 = new BasicDBObject(); updateQuery.append("$set", @@ -1257,8 +1143,177 @@ public class delegationServices { new BasicDBObject().append("status", true)); dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery, updateQuery1); - System.out.println("Update Request With Finished Status"); + System.out.println("Update Request With Aborted Status"); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } else { + System.out.println("Account Creation Request"); + Document DServer = dCollection.find(eq("_id", ClientID)).first(); + String User = (String) DServer.get("User"); + String Password = (String) DServer.get("Password"); + String Email = (String) DServer.get("Email"); + String FName = (String) DServer.get("FName"); + if ((Boolean) Filter.get("creationEnabled")) { + String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; + StringBuilder sbt = new StringBuilder(); + Random random = new Random(); + int tokenlength = 60; + for (int i = 0; i < tokenlength; i++) { + int index = random.nextInt(sourcet.length()); + char randomChar = sourcet.charAt(index); + sbt.append(randomChar); + } + String Token = "OCST" + sbt.toString(); + //Above makes token, it will be remade if it already exists + String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; + StringBuilder sb = new StringBuilder(); + int length = 40; + for (int i = 0; i < length; i++) { + int index = random.nextInt(source.length()); + char randomChar = source.charAt(index); + sb.append(randomChar); + } + String UUID = sb.toString(); + //Above makes UUID, will be remade if it already exists. + + try { + + Document DupeEmail = accountS.find(eq("Email", Email)).first(); + String DUPEEMAIL = (String) DupeEmail.get("Email"); + if (DUPEEMAIL.equals(null)) { + Document DupeUser = accountS.find(eq("User", User)).first(); + String DUPE = (String) DupeUser.get("User"); + } + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("_id", ClientID); + + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 6)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } catch (Exception exr) { + System.out.println("Username & Email Is Open"); + try { + Document DupeToken = accountS.find(eq("Token", Token)).first(); + String DupeToke1n = (String) DupeToken.get("Token"); + System.out.println("Got Token from request"); + Boolean TokenOpen = false; + while (TokenOpen == false) { + for (int i = 0; i < tokenlength; i++) { + int index = random.nextInt(sourcet.length()); + char randomChar = sourcet.charAt(index); + sbt.append(randomChar); + } + Token = sbt.toString(); + try { + DupeToken = accountS.find(eq("Token", Token)).first(); + DupeToke1n = (String) DupeToken.get("Token"); + System.out.println("Token Is Reserved, Try Again."); + for (int i = 0; i < tokenlength; i++) { + int index = random.nextInt(sourcet.length()); + char randomChar = sourcet.charAt(index); + sbt.append(randomChar); + } + } catch (Exception exDr) { + TokenOpen = true; + System.out.println("Token Free (While EXP)"); + } + } + } catch (Exception token) { + System.out.println("Working on UUID"); + try { + Document DupeUUID = accountS.find(eq("UUID", UUID)).first(); + String DupeUUIDS = (String) DupeUUID.get("UUID"); + System.out.println("Got Gen UUID"); + Boolean UUIDOPEN = false; + while (UUIDOPEN == false) { + length = 40; + sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + int index = random.nextInt(source.length()); + char randomChar = source.charAt(index); + sb.append(randomChar); + } + String UUIDGEN = sb.toString(); + try { + System.out.println("Retry UUID"); + DupeUUID = accountS.find(eq("UUID", UUID)).first(); + DupeUUIDS = (String) DupeUUID.get("UUID"); + System.out.println("UUID Is Reserved, Try Again."); + length = 40; + sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + int index = random.nextInt(source.length()); + char randomChar = source.charAt(index); + sb.append(randomChar); + } + UUIDGEN = sb.toString(); + UUID = UUIDGEN; + } catch (Exception exDr) { + UUIDOPEN = true; + System.out.println("UUID Free (While EXP)" + exDr); + } + } + } catch (NullPointerException uuid) { + System.out.println("UUID Free"); + } + System.out.println("Token Free"); + System.out.println("Token & UUID Free (Main)"); + System.out.println("Creating."); + Document createForm = new Document(); + createForm.append("User", User); + createForm.append("Password", Password); + createForm.append("Status", true); + createForm.append("Flagged", false); + createForm.append("Email", Email); + createForm.append("FName", FName); + createForm.append("Entitlements", "NA"); + createForm.append("Freinds", " "); + createForm.append("Token", Token); + createForm.append("UUID", UUID); + createForm.append("Control", 1); + createForm.append("Upgrade", 0); + createForm.append("Version", "2"); + createForm.append("keyStatus", false); + //createForm.append("Uid",uid); + createForm.append("lastNet", IPA); + accountS.insertOne(createForm); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("_id", ClientID); + secureCalls.accountCreationComplete(Email, User, UUID); + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 4)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + System.out.println("Update Request With Finished Status"); + delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } + + } + } else { + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("_id", ClientID); + try { secureCalls.accountCreationDisabled(Email, User);} catch (Exception ex) {System.out.println("Unable to send disabled msg to user"); + } + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 52)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + System.out.println("Update Request With Finished Status"); + delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } } } if (requesttype == 20) @@ -1403,27 +1458,72 @@ public class delegationServices { new BasicDBObject().append("dn", dr)); System.out.println("Denied"); } - - updateQuery2.append("$set", - new BasicDBObject().append("uNotes", platformUpdateNotes)); - updateQuery3.append("$set", - new BasicDBObject().append("pushV", version)); - updateQuery4.append("$set", - new BasicDBObject().append("keyReq", pKey)); - updateQuery8.append("$set", - new BasicDBObject().append("news", nw)); - updateQuery6.append("$set", - new BasicDBObject().append("status", true)); - updateQuery7.append("$set", - new BasicDBObject().append("dn", dr)); - System.out.println("Sending Info To Forwarding Server"); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery2); - dCollection.updateOne(searchQuery, updateQuery3); - dCollection.updateOne(searchQuery, updateQuery4); - dCollection.updateOne(searchQuery, updateQuery7); - dCollection.updateOne(searchQuery, updateQuery8); - dCollection.updateOne(searchQuery, updateQuery6); + if (legacy) { + if ((Boolean) Filter.get("legacyPRDisable") == true) { + updateQuery2.append("$set", + new BasicDBObject().append("uNotes", (String) Filter.get("legacyPRUpdateDisplay"))); + updateQuery3.append("$set", + new BasicDBObject().append("pushV", version)); + updateQuery4.append("$set", + new BasicDBObject().append("keyReq", pKey)); + updateQuery8.append("$set", + new BasicDBObject().append("news", (String) Filter.get("legacyNews"))); + updateQuery6.append("$set", + new BasicDBObject().append("status", true)); + updateQuery7.append("$set", + new BasicDBObject().append("dn", dr)); + System.out.println("Sending Info To Forwarding Server"); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery2); + dCollection.updateOne(searchQuery, updateQuery3); + dCollection.updateOne(searchQuery, updateQuery4); + dCollection.updateOne(searchQuery, updateQuery7); + dCollection.updateOne(searchQuery, updateQuery8); + dCollection.updateOne(searchQuery, updateQuery6); + } else { + updateQuery2.append("$set", + new BasicDBObject().append("uNotes", platformUpdateNotes)); + updateQuery3.append("$set", + new BasicDBObject().append("pushV", version)); + updateQuery4.append("$set", + new BasicDBObject().append("keyReq", pKey)); + updateQuery8.append("$set", + new BasicDBObject().append("news", nw)); + updateQuery6.append("$set", + new BasicDBObject().append("status", true)); + updateQuery7.append("$set", + new BasicDBObject().append("dn", dr)); + System.out.println("Sending Info To Forwarding Server"); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery2); + dCollection.updateOne(searchQuery, updateQuery3); + dCollection.updateOne(searchQuery, updateQuery4); + dCollection.updateOne(searchQuery, updateQuery7); + dCollection.updateOne(searchQuery, updateQuery8); + dCollection.updateOne(searchQuery, updateQuery6); + } + } else { + updateQuery2.append("$set", + new BasicDBObject().append("uNotes", platformUpdateNotes)); + updateQuery3.append("$set", + new BasicDBObject().append("pushV", version)); + updateQuery4.append("$set", + new BasicDBObject().append("keyReq", pKey)); + updateQuery8.append("$set", + new BasicDBObject().append("news", nw)); + updateQuery6.append("$set", + new BasicDBObject().append("status", true)); + updateQuery7.append("$set", + new BasicDBObject().append("dn", dr)); + System.out.println("Sending Info To Forwarding Server"); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery2); + dCollection.updateOne(searchQuery, updateQuery3); + dCollection.updateOne(searchQuery, updateQuery4); + dCollection.updateOne(searchQuery, updateQuery7); + dCollection.updateOne(searchQuery, updateQuery8); + dCollection.updateOne(searchQuery, updateQuery6); + } //delegationTimer.trigger(); System.out.println("Pushed"); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); @@ -1746,48 +1846,64 @@ public class delegationServices { } if (requesttype == 67) { - String OTK = "keyNotSetDueToError(ERR24)"; - Boolean keyStatus = false; - //default false, since will be set to true if the measurement exists on linked account - String accountUUID = (String) Lrequest.get("uuid"); - Document linkedAccount = accountS.find(eq("UUID", accountUUID)).first(); - try { - keyStatus = (boolean) linkedAccount.get("delStatus"); - } catch (Exception NPE) { - keyStatus = false; - } - if (keyStatus == false) { - String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; - StringBuilder sb = new StringBuilder(); - Random random = new Random(); - int length = 15; - for (int i = 0; i < length; i++) { - int index = random.nextInt(alphabet.length()); - char randomChar = alphabet.charAt(index); - sb.append(randomChar); + if (legacy && (Boolean) Filter.get("legacyPRDisable") == true) { + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("_id", ClientID); + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 52)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + System.out.println("Update Request With Aborted Status"); + delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } else + { + String OTK = "keyNotSetDueToError(ERR24)"; + Boolean keyStatus = false; + //default false, since will be set to true if the measurement exists on linked account + String accountUUID = (String) Lrequest.get("uuid"); + Document linkedAccount = accountS.find(eq("UUID", accountUUID)).first(); + try { + keyStatus = (boolean) linkedAccount.get("delStatus"); + } catch (Exception NPE) { + keyStatus = false; } - OTK = sb.toString(); - BasicDBObject deleteKey = new BasicDBObject(); - BasicDBObject deleteKeyStatus = new BasicDBObject(); - BasicDBObject deleteTie = new BasicDBObject(); - deleteTie.append("UUID", accountUUID); - deleteKey.append("$set", - new BasicDBObject().append("delOTK", OTK)); - deleteKeyStatus.append("$set", - new BasicDBObject().append("delStatus", true)); - accountS.updateOne(deleteTie, deleteKey); - accountS.updateOne(deleteTie, deleteKeyStatus); - otkDeletionEmail((String) linkedAccount.get("Email"), OTK, (String) linkedAccount.get("User")); - } else { - otkDeletionEmailResend((String) linkedAccount.get("Email"), (String) linkedAccount.get("delOTK"), (String) linkedAccount.get("User")); + if (keyStatus == false) { + String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; + StringBuilder sb = new StringBuilder(); + Random random = new Random(); + int length = 15; + for (int i = 0; i < length; i++) { + int index = random.nextInt(alphabet.length()); + char randomChar = alphabet.charAt(index); + sb.append(randomChar); + } + OTK = sb.toString(); + BasicDBObject deleteKey = new BasicDBObject(); + BasicDBObject deleteKeyStatus = new BasicDBObject(); + BasicDBObject deleteTie = new BasicDBObject(); + deleteTie.append("UUID", accountUUID); + deleteKey.append("$set", + new BasicDBObject().append("delOTK", OTK)); + deleteKeyStatus.append("$set", + new BasicDBObject().append("delStatus", true)); + accountS.updateOne(deleteTie, deleteKey); + accountS.updateOne(deleteTie, deleteKeyStatus); + otkDeletionEmail((String) linkedAccount.get("Email"), OTK, (String) linkedAccount.get("User")); + } else { + otkDeletionEmailResend((String) linkedAccount.get("Email"), (String) linkedAccount.get("delOTK"), (String) linkedAccount.get("User")); + } + BasicDBObject clearCL = new BasicDBObject(); + clearCL.append("_id", ClientID); + BasicDBObject clearUO = new BasicDBObject(); + clearUO.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(clearCL, clearUO); + TargetDelete(ClientID); } - BasicDBObject clearCL = new BasicDBObject(); - clearCL.append("_id", ClientID); - BasicDBObject clearUO = new BasicDBObject(); - clearUO.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(clearCL, clearUO); - TargetDelete(ClientID); } if (requesttype == 81) { System.out.println("Login Request (TKN)");