From 32d44f6532805e90b05afbd77f15fbf2b66eff53 Mon Sep 17 00:00:00 2001 From: James Quinley Date: Sun, 14 May 2023 23:03:32 -0700 Subject: [PATCH] Server update, this incorporates DOB checks. --- .../delegationServices.java | 338 ++++++++++-------- 1 file changed, 179 insertions(+), 159 deletions(-) diff --git a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java index 2cc15cd..b0e00f0 100644 --- a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java +++ b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java @@ -15,7 +15,9 @@ import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; +import java.util.Date; import java.util.Random; import static com.jamesquinley.Asecure.electronicMailHandler.*; @@ -1155,169 +1157,187 @@ public class delegationServices { String Email = (String) DServer.get("Email"); String FName = (String) DServer.get("FName"); int DOB = (int) DServer.get("UDOB"); - //TODO Please made DOB calcs work. - 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. + String yearString = new SimpleDateFormat("yyyy").format(new Date()); + int year = Integer.parseInt(yearString); + if (year-DOB >= 13) { + 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 { + 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); + 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")); - } + 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")); - } + } + } 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")); + } + } else { + //Please set to a custom flag + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("_id", ClientID); + + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 97)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + //delegationTimer.trigger(); + delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); + } } } if (requesttype == 20)