From 6d737a3eee96edd2e7d9d1c0ddc3eb14bb8520bc Mon Sep 17 00:00:00 2001 From: sshaji Date: Mon, 20 Nov 2023 18:46:24 -0400 Subject: [PATCH 1/5] wemw --- pom.xml | 7 ++++ .../com/nonononoki/alovoa/lib/OxCaptcha.java | 6 ++- .../alovoa/repo/UserRepository.java | 13 ++---- .../alovoa/service/UserService.java | 42 +++++++++++-------- src/main/resources/application.properties | 26 ++++++------ .../resources/application-test.properties | 4 +- 6 files changed, 54 insertions(+), 44 deletions(-) diff --git a/pom.xml b/pom.xml index 6a66732c..ea5d866c 100644 --- a/pom.xml +++ b/pom.xml @@ -180,6 +180,13 @@ com.github.buckelieg minify-maven-plugin 2.0.1 + + + org.codehaus.plexus + plexus-utils + 3.5.1 + + default-minify diff --git a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java index 325055f8..d72364c5 100644 --- a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java +++ b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java @@ -32,6 +32,7 @@ public class OxCaptcha { private static final Random RAND = new SecureRandom(); // private static final Random RAND = new Random(); + private static final double TWO_PI = 6.2831853071795862D; private BufferedImage _img; private Graphics2D _img_g; @@ -1045,7 +1046,8 @@ private void shearX(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < height; i++) { - double d = (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * phase) / frames); + double angle = (double) i / (double) period + (TWO_PI * phase) / frames; + double d = (period >> 1) * Math.sin(angle); g.copyArea(0, i, width, 1, (int) d, 0); g.setColor(_bg_color); if (d >= 0) { @@ -1062,7 +1064,7 @@ private void shearY(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < width; i++) { - double d = (period >> 1) * Math.sin((float) i / period + (6.2831853071795862D * phase) / frames); + double d = (period >> 1) * Math.sin((float) i / period + (TWO_PI * phase) / frames); g.copyArea(i, 0, 1, height, 0, (int) d); g.setColor(_bg_color); if (d >= 0) { diff --git a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java index bde4b7d5..6d648281 100644 --- a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java +++ b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java @@ -82,17 +82,12 @@ default List adminSearch() { // used for sending mails to all List findByDisabledFalseAndAdminFalseAndConfirmedTrue(); - List findTop100ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullOrderByDatesCreationDateDesc(); + List findTop100ActiveUsersOrderedByCreationDate(); - List findTop200ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotInAndGenderIdIn( - Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, - Collection genderIds, Sort sort); + List findTop200FilteredUsers(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Collection genderIds, Sort sort); - List findTop50ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotIn( - Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, - Sort sort); + List findTop50ActiveUsersWithProfileIntentionInRangeAndExcludedIds(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Sort sort); // users donate - List findTop20ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualOrderByTotalDonationsDesc( - Date minDate, Date maxDate); + List findTop20ActiveDonors(Date minDate, Date maxDate); } diff --git a/src/main/java/com/nonononoki/alovoa/service/UserService.java b/src/main/java/com/nonononoki/alovoa/service/UserService.java index 8b2c8ef9..5f965b8c 100644 --- a/src/main/java/com/nonononoki/alovoa/service/UserService.java +++ b/src/main/java/com/nonononoki/alovoa/service/UserService.java @@ -122,16 +122,16 @@ public class UserService { public static void removeUserDataCascading(User user, UserDeleteParams userDeleteParam) { - UserRepository userRepo = userDeleteParam.getUserRepo(); - UserLikeRepository userLikeRepo = userDeleteParam.getUserLikeRepo(); - ConversationRepository conversationRepo = userDeleteParam.getConversationRepo(); - UserNotificationRepository userNotificationRepo = userDeleteParam.getUserNotificationRepo(); - UserHideRepository userHideRepo = userDeleteParam.getUserHideRepo(); - UserBlockRepository userBlockRepo = userDeleteParam.getUserBlockRepo(); - UserReportRepository userReportRepo = userDeleteParam.getUserReportRepo(); - UserVerificationPictureRepository userVerificationPictureRepo = userDeleteParam.getUserVerificationPictureRepo(); - - // DELETE USER LIKE + removeUserLikes(user, userDeleteParam.getUserLikeRepo(), userDeleteParam.getUserRepo()); + removeUserNotifications(user, userDeleteParam.getUserNotificationRepo(), userDeleteParam.getUserRepo()); + removeUserHides(user, userDeleteParam.getUserHideRepo(), userDeleteParam.getUserRepo()); + removeUserBlocks(user, userDeleteParam.getUserBlockRepo(), userDeleteParam.getUserRepo()); + removeUserReports(user, userDeleteParam.getUserReportRepo(), userDeleteParam.getUserRepo()); + removeUserConversations(user, userDeleteParam.getConversationRepo(), userDeleteParam.getUserRepo()); + removeUserVerifications(user, userDeleteParam.getUserVerificationPictureRepo()); + } + + private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, UserRepository userRepo) { for (UserLike like : userLikeRepo.findByUserFrom(user)) { User u = like.getUserTo(); if (u != null && u.getLikedBy() != null) { @@ -153,8 +153,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userLikeRepo.flush(); + } - // DELETE USER NOTIFICATION + private static void removeUserNotifications(User user, UserNotificationRepository userNotificationRepo, UserRepository userRepo) { for (UserNotification notification : userNotificationRepo.findByUserFrom(user)) { User u = notification.getUserTo(); if (u != null && u.getNotificationsFrom() != null) { @@ -175,8 +176,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userNotificationRepo.flush(); + } - // DELETE USER HIDE + private static void removeUserHides(User user, UserHideRepository userHideRepo, UserRepository userRepo) { for (UserHide hide : userHideRepo.findByUserFrom(user)) { User u = hide.getUserTo(); if (u != null && u.getHiddenByUsers() != null) { @@ -198,8 +200,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userHideRepo.flush(); + } - // DELETE USER BLOCK + private static void removeUserBlocks(User user, UserBlockRepository userBlockRepo, UserRepository userRepo) { for (UserBlock block : userBlockRepo.findByUserFrom(user)) { User u = block.getUserTo(); if (u != null && u.getBlockedByUsers() != null) { @@ -220,8 +223,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userBlockRepo.flush(); + } - // DELETE USER REPORT + private static void removeUserReports(User user, UserReportRepository userReportRepo, UserRepository userRepo) { for (UserReport report : userReportRepo.findByUserFrom(user)) { User u = report.getUserTo(); if (u != null && u.getReportedByUsers() != null) { @@ -242,8 +246,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userReportRepo.flush(); + } - // DELETE USER CONVERSATION + private static void removeUserConversations(User user, ConversationRepository conversationRepo, UserRepository userRepo) { for (Conversation c : conversationRepo.findByUsers_Id(user.getId())) { for (User u : c.getUsers()) { if (u != null && u.getConversations() != null) { @@ -253,8 +258,11 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } conversationRepo.delete(c); } + conversationRepo.flush(); + userRepo.flush(); + } - // DELETE USER VERIFICATION + private static void removeUserVerifications(User user, UserVerificationPictureRepository userVerificationPictureRepo) { for (UserVerificationPicture v : userVerificationPictureRepo.findByUserNo(user)) { v.getUserNo().remove(user); userVerificationPictureRepo.save(v); @@ -265,8 +273,6 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userVerificationPictureRepo.flush(); - conversationRepo.flush(); - userRepo.flush(); } public static String stripB64Type(String s) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 39f8c22a..7ba833e0 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -21,10 +21,10 @@ spring.datasource.url=jdbc:mariadb://localhost:3306/alovoa?createDatabaseIfNotEx #spring.datasource.hikari.maxLifetime=1800000 #Insert your oauth2 ids and secrets here -#spring.security.oauth2.client.registration.google.client-id= -#spring.security.oauth2.client.registration.google.client-secret= -#spring.security.oauth2.client.registration.facebook.client-id= -#spring.security.oauth2.client.registration.facebook.client-secret= +spring.security.oauth2.client.registration.google.client-id=test +spring.security.oauth2.client.registration.google.client-secret=test +spring.security.oauth2.client.registration.facebook.client-id=test +spring.security.oauth2.client.registration.facebook.client-secret=test #we keep the default /login/oauth2/code/{registrationId} scheme @@ -55,17 +55,17 @@ spring.jpa.properties.hibernate.plan_parameter_metadata_max_size=16 spring.jpa.properties.hibernate.query.in_clause_parameter_padding=true ### KEYS AND CREDENTIALS ### -#spring.datasource.password= -#spring.datasource.username= +spring.datasource.password= +spring.datasource.username=root #keys for transparent database encryption -#app.text.key= #key must be 16, 24 or 32 bytes long -#app.text.salt= #salt must be 16 bytes long -#app.admin.email= -#app.admin.key= -#spring.mail.password= -spring.mail.host=mail.gmx.net +app.text.key=bqupWgmhCj3fedLxYdNAy2QFA2bS9XJX +app.text.salt=sFRKQAhwdrZq44FQ +app.admin.email=admin@alovoa.com +app.admin.key=password +spring.mail.password=ahiuoplndlkqyarc +spring.mail.host=smtp.gmail.com spring.mail.port=587 -spring.mail.username=nonononoki@gmx.de +spring.mail.username=sruthidalho@gmail.com spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.test-connection=true diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-test.properties index 206e3012..25beb51f 100644 --- a/src/test/resources/application-test.properties +++ b/src/test/resources/application-test.properties @@ -1,6 +1,6 @@ spring.datasource.url=jdbc:mariadb://localhost:3306/alovoa_test?createDatabaseIfNotExist=true&serverTimezone=UTC&useLegacyDatetimeCode=false -spring.datasource.username=alovoa_test -spring.datasource.password=alovoa_test +spring.datasource.username=root +spring.datasource.password= spring.jpa.properties.hibernate.id.db_structure_naming_strategy=standard # keys for transparent database encryption From 859d61725bb0eb4471f263598705d860cd935e3f Mon Sep 17 00:00:00 2001 From: sruthi7553 <43843857+sruthi7553@users.noreply.github.com> Date: Mon, 20 Nov 2023 18:56:03 -0400 Subject: [PATCH 2/5] Revert "chore: code refactoring to enhance readability." --- pom.xml | 7 ---- .../com/nonononoki/alovoa/lib/OxCaptcha.java | 6 +-- .../alovoa/repo/UserRepository.java | 13 ++++-- .../alovoa/service/UserService.java | 42 ++++++++----------- src/main/resources/application.properties | 26 ++++++------ .../resources/application-test.properties | 4 +- 6 files changed, 44 insertions(+), 54 deletions(-) diff --git a/pom.xml b/pom.xml index ea5d866c..6a66732c 100644 --- a/pom.xml +++ b/pom.xml @@ -180,13 +180,6 @@ com.github.buckelieg minify-maven-plugin 2.0.1 - - - org.codehaus.plexus - plexus-utils - 3.5.1 - - default-minify diff --git a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java index d72364c5..325055f8 100644 --- a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java +++ b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java @@ -32,7 +32,6 @@ public class OxCaptcha { private static final Random RAND = new SecureRandom(); // private static final Random RAND = new Random(); - private static final double TWO_PI = 6.2831853071795862D; private BufferedImage _img; private Graphics2D _img_g; @@ -1046,8 +1045,7 @@ private void shearX(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < height; i++) { - double angle = (double) i / (double) period + (TWO_PI * phase) / frames; - double d = (period >> 1) * Math.sin(angle); + double d = (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * phase) / frames); g.copyArea(0, i, width, 1, (int) d, 0); g.setColor(_bg_color); if (d >= 0) { @@ -1064,7 +1062,7 @@ private void shearY(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < width; i++) { - double d = (period >> 1) * Math.sin((float) i / period + (TWO_PI * phase) / frames); + double d = (period >> 1) * Math.sin((float) i / period + (6.2831853071795862D * phase) / frames); g.copyArea(i, 0, 1, height, 0, (int) d); g.setColor(_bg_color); if (d >= 0) { diff --git a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java index 6d648281..bde4b7d5 100644 --- a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java +++ b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java @@ -82,12 +82,17 @@ default List adminSearch() { // used for sending mails to all List findByDisabledFalseAndAdminFalseAndConfirmedTrue(); - List findTop100ActiveUsersOrderedByCreationDate(); + List findTop100ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullOrderByDatesCreationDateDesc(); - List findTop200FilteredUsers(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Collection genderIds, Sort sort); + List findTop200ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotInAndGenderIdIn( + Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, + Collection genderIds, Sort sort); - List findTop50ActiveUsersWithProfileIntentionInRangeAndExcludedIds(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Sort sort); + List findTop50ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotIn( + Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, + Sort sort); // users donate - List findTop20ActiveDonors(Date minDate, Date maxDate); + List findTop20ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualOrderByTotalDonationsDesc( + Date minDate, Date maxDate); } diff --git a/src/main/java/com/nonononoki/alovoa/service/UserService.java b/src/main/java/com/nonononoki/alovoa/service/UserService.java index 5f965b8c..8b2c8ef9 100644 --- a/src/main/java/com/nonononoki/alovoa/service/UserService.java +++ b/src/main/java/com/nonononoki/alovoa/service/UserService.java @@ -122,16 +122,16 @@ public class UserService { public static void removeUserDataCascading(User user, UserDeleteParams userDeleteParam) { - removeUserLikes(user, userDeleteParam.getUserLikeRepo(), userDeleteParam.getUserRepo()); - removeUserNotifications(user, userDeleteParam.getUserNotificationRepo(), userDeleteParam.getUserRepo()); - removeUserHides(user, userDeleteParam.getUserHideRepo(), userDeleteParam.getUserRepo()); - removeUserBlocks(user, userDeleteParam.getUserBlockRepo(), userDeleteParam.getUserRepo()); - removeUserReports(user, userDeleteParam.getUserReportRepo(), userDeleteParam.getUserRepo()); - removeUserConversations(user, userDeleteParam.getConversationRepo(), userDeleteParam.getUserRepo()); - removeUserVerifications(user, userDeleteParam.getUserVerificationPictureRepo()); - } - - private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, UserRepository userRepo) { + UserRepository userRepo = userDeleteParam.getUserRepo(); + UserLikeRepository userLikeRepo = userDeleteParam.getUserLikeRepo(); + ConversationRepository conversationRepo = userDeleteParam.getConversationRepo(); + UserNotificationRepository userNotificationRepo = userDeleteParam.getUserNotificationRepo(); + UserHideRepository userHideRepo = userDeleteParam.getUserHideRepo(); + UserBlockRepository userBlockRepo = userDeleteParam.getUserBlockRepo(); + UserReportRepository userReportRepo = userDeleteParam.getUserReportRepo(); + UserVerificationPictureRepository userVerificationPictureRepo = userDeleteParam.getUserVerificationPictureRepo(); + + // DELETE USER LIKE for (UserLike like : userLikeRepo.findByUserFrom(user)) { User u = like.getUserTo(); if (u != null && u.getLikedBy() != null) { @@ -153,9 +153,8 @@ private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, } userRepo.flush(); userLikeRepo.flush(); - } - private static void removeUserNotifications(User user, UserNotificationRepository userNotificationRepo, UserRepository userRepo) { + // DELETE USER NOTIFICATION for (UserNotification notification : userNotificationRepo.findByUserFrom(user)) { User u = notification.getUserTo(); if (u != null && u.getNotificationsFrom() != null) { @@ -176,9 +175,8 @@ private static void removeUserNotifications(User user, UserNotificationRepositor } userRepo.flush(); userNotificationRepo.flush(); - } - private static void removeUserHides(User user, UserHideRepository userHideRepo, UserRepository userRepo) { + // DELETE USER HIDE for (UserHide hide : userHideRepo.findByUserFrom(user)) { User u = hide.getUserTo(); if (u != null && u.getHiddenByUsers() != null) { @@ -200,9 +198,8 @@ private static void removeUserHides(User user, UserHideRepository userHideRepo, } userRepo.flush(); userHideRepo.flush(); - } - private static void removeUserBlocks(User user, UserBlockRepository userBlockRepo, UserRepository userRepo) { + // DELETE USER BLOCK for (UserBlock block : userBlockRepo.findByUserFrom(user)) { User u = block.getUserTo(); if (u != null && u.getBlockedByUsers() != null) { @@ -223,9 +220,8 @@ private static void removeUserBlocks(User user, UserBlockRepository userBlockRep } userRepo.flush(); userBlockRepo.flush(); - } - private static void removeUserReports(User user, UserReportRepository userReportRepo, UserRepository userRepo) { + // DELETE USER REPORT for (UserReport report : userReportRepo.findByUserFrom(user)) { User u = report.getUserTo(); if (u != null && u.getReportedByUsers() != null) { @@ -246,9 +242,8 @@ private static void removeUserReports(User user, UserReportRepository userReport } userRepo.flush(); userReportRepo.flush(); - } - private static void removeUserConversations(User user, ConversationRepository conversationRepo, UserRepository userRepo) { + // DELETE USER CONVERSATION for (Conversation c : conversationRepo.findByUsers_Id(user.getId())) { for (User u : c.getUsers()) { if (u != null && u.getConversations() != null) { @@ -258,11 +253,8 @@ private static void removeUserConversations(User user, ConversationRepository co } conversationRepo.delete(c); } - conversationRepo.flush(); - userRepo.flush(); - } - private static void removeUserVerifications(User user, UserVerificationPictureRepository userVerificationPictureRepo) { + // DELETE USER VERIFICATION for (UserVerificationPicture v : userVerificationPictureRepo.findByUserNo(user)) { v.getUserNo().remove(user); userVerificationPictureRepo.save(v); @@ -273,6 +265,8 @@ private static void removeUserVerifications(User user, UserVerificationPictureRe } userVerificationPictureRepo.flush(); + conversationRepo.flush(); + userRepo.flush(); } public static String stripB64Type(String s) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 7ba833e0..39f8c22a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -21,10 +21,10 @@ spring.datasource.url=jdbc:mariadb://localhost:3306/alovoa?createDatabaseIfNotEx #spring.datasource.hikari.maxLifetime=1800000 #Insert your oauth2 ids and secrets here -spring.security.oauth2.client.registration.google.client-id=test -spring.security.oauth2.client.registration.google.client-secret=test -spring.security.oauth2.client.registration.facebook.client-id=test -spring.security.oauth2.client.registration.facebook.client-secret=test +#spring.security.oauth2.client.registration.google.client-id= +#spring.security.oauth2.client.registration.google.client-secret= +#spring.security.oauth2.client.registration.facebook.client-id= +#spring.security.oauth2.client.registration.facebook.client-secret= #we keep the default /login/oauth2/code/{registrationId} scheme @@ -55,17 +55,17 @@ spring.jpa.properties.hibernate.plan_parameter_metadata_max_size=16 spring.jpa.properties.hibernate.query.in_clause_parameter_padding=true ### KEYS AND CREDENTIALS ### -spring.datasource.password= -spring.datasource.username=root +#spring.datasource.password= +#spring.datasource.username= #keys for transparent database encryption -app.text.key=bqupWgmhCj3fedLxYdNAy2QFA2bS9XJX -app.text.salt=sFRKQAhwdrZq44FQ -app.admin.email=admin@alovoa.com -app.admin.key=password -spring.mail.password=ahiuoplndlkqyarc -spring.mail.host=smtp.gmail.com +#app.text.key= #key must be 16, 24 or 32 bytes long +#app.text.salt= #salt must be 16 bytes long +#app.admin.email= +#app.admin.key= +#spring.mail.password= +spring.mail.host=mail.gmx.net spring.mail.port=587 -spring.mail.username=sruthidalho@gmail.com +spring.mail.username=nonononoki@gmx.de spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.test-connection=true diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-test.properties index 25beb51f..206e3012 100644 --- a/src/test/resources/application-test.properties +++ b/src/test/resources/application-test.properties @@ -1,6 +1,6 @@ spring.datasource.url=jdbc:mariadb://localhost:3306/alovoa_test?createDatabaseIfNotExist=true&serverTimezone=UTC&useLegacyDatetimeCode=false -spring.datasource.username=root -spring.datasource.password= +spring.datasource.username=alovoa_test +spring.datasource.password=alovoa_test spring.jpa.properties.hibernate.id.db_structure_naming_strategy=standard # keys for transparent database encryption From 71caeb65226e12dd9b2c117e2a83ff950166632c Mon Sep 17 00:00:00 2001 From: sshaji Date: Mon, 20 Nov 2023 19:06:59 -0400 Subject: [PATCH 3/5] adding dependencies for project set up using maven 3.9 or higher. --- pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pom.xml b/pom.xml index 6a66732c..ea5d866c 100644 --- a/pom.xml +++ b/pom.xml @@ -180,6 +180,13 @@ com.github.buckelieg minify-maven-plugin 2.0.1 + + + org.codehaus.plexus + plexus-utils + 3.5.1 + + default-minify From 55dc33fe0ff5f4b478ec621479d679d3db38d656 Mon Sep 17 00:00:00 2001 From: sshaji Date: Mon, 20 Nov 2023 19:15:56 -0400 Subject: [PATCH 4/5] code refactoring for better readability. --- .../com/nonononoki/alovoa/lib/OxCaptcha.java | 10 +++-- .../alovoa/repo/UserRepository.java | 13 ++---- .../alovoa/service/UserService.java | 42 +++++++++++-------- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java index 325055f8..f4ad97a7 100644 --- a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java +++ b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java @@ -30,8 +30,9 @@ import javax.imageio.ImageIO; public class OxCaptcha { - private static final Random RAND = new SecureRandom(); -// private static final Random RAND = new Random(); + private static final Random RAND = new SecureRandom(); + // private static final Random RAND = new Random(); + private static final double TWO_PI = 6.2831853071795862D; private BufferedImage _img; private Graphics2D _img_g; @@ -1045,7 +1046,8 @@ private void shearX(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < height; i++) { - double d = (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * phase) / frames); + double angle = (double) i / (double) period + (TWO_PI * phase) / frames; + double d = (period >> 1) * Math.sin(angle); g.copyArea(0, i, width, 1, (int) d, 0); g.setColor(_bg_color); if (d >= 0) { @@ -1062,7 +1064,7 @@ private void shearY(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < width; i++) { - double d = (period >> 1) * Math.sin((float) i / period + (6.2831853071795862D * phase) / frames); + double d = (period >> 1) * Math.sin((float) i / period + (TWO_PI * phase) / frames); g.copyArea(i, 0, 1, height, 0, (int) d); g.setColor(_bg_color); if (d >= 0) { diff --git a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java index bde4b7d5..6d648281 100644 --- a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java +++ b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java @@ -82,17 +82,12 @@ default List adminSearch() { // used for sending mails to all List findByDisabledFalseAndAdminFalseAndConfirmedTrue(); - List findTop100ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullOrderByDatesCreationDateDesc(); + List findTop100ActiveUsersOrderedByCreationDate(); - List findTop200ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotInAndGenderIdIn( - Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, - Collection genderIds, Sort sort); + List findTop200FilteredUsers(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Collection genderIds, Sort sort); - List findTop50ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotIn( - Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, - Sort sort); + List findTop50ActiveUsersWithProfileIntentionInRangeAndExcludedIds(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Sort sort); // users donate - List findTop20ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualOrderByTotalDonationsDesc( - Date minDate, Date maxDate); + List findTop20ActiveDonors(Date minDate, Date maxDate); } diff --git a/src/main/java/com/nonononoki/alovoa/service/UserService.java b/src/main/java/com/nonononoki/alovoa/service/UserService.java index 8b2c8ef9..5f965b8c 100644 --- a/src/main/java/com/nonononoki/alovoa/service/UserService.java +++ b/src/main/java/com/nonononoki/alovoa/service/UserService.java @@ -122,16 +122,16 @@ public class UserService { public static void removeUserDataCascading(User user, UserDeleteParams userDeleteParam) { - UserRepository userRepo = userDeleteParam.getUserRepo(); - UserLikeRepository userLikeRepo = userDeleteParam.getUserLikeRepo(); - ConversationRepository conversationRepo = userDeleteParam.getConversationRepo(); - UserNotificationRepository userNotificationRepo = userDeleteParam.getUserNotificationRepo(); - UserHideRepository userHideRepo = userDeleteParam.getUserHideRepo(); - UserBlockRepository userBlockRepo = userDeleteParam.getUserBlockRepo(); - UserReportRepository userReportRepo = userDeleteParam.getUserReportRepo(); - UserVerificationPictureRepository userVerificationPictureRepo = userDeleteParam.getUserVerificationPictureRepo(); - - // DELETE USER LIKE + removeUserLikes(user, userDeleteParam.getUserLikeRepo(), userDeleteParam.getUserRepo()); + removeUserNotifications(user, userDeleteParam.getUserNotificationRepo(), userDeleteParam.getUserRepo()); + removeUserHides(user, userDeleteParam.getUserHideRepo(), userDeleteParam.getUserRepo()); + removeUserBlocks(user, userDeleteParam.getUserBlockRepo(), userDeleteParam.getUserRepo()); + removeUserReports(user, userDeleteParam.getUserReportRepo(), userDeleteParam.getUserRepo()); + removeUserConversations(user, userDeleteParam.getConversationRepo(), userDeleteParam.getUserRepo()); + removeUserVerifications(user, userDeleteParam.getUserVerificationPictureRepo()); + } + + private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, UserRepository userRepo) { for (UserLike like : userLikeRepo.findByUserFrom(user)) { User u = like.getUserTo(); if (u != null && u.getLikedBy() != null) { @@ -153,8 +153,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userLikeRepo.flush(); + } - // DELETE USER NOTIFICATION + private static void removeUserNotifications(User user, UserNotificationRepository userNotificationRepo, UserRepository userRepo) { for (UserNotification notification : userNotificationRepo.findByUserFrom(user)) { User u = notification.getUserTo(); if (u != null && u.getNotificationsFrom() != null) { @@ -175,8 +176,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userNotificationRepo.flush(); + } - // DELETE USER HIDE + private static void removeUserHides(User user, UserHideRepository userHideRepo, UserRepository userRepo) { for (UserHide hide : userHideRepo.findByUserFrom(user)) { User u = hide.getUserTo(); if (u != null && u.getHiddenByUsers() != null) { @@ -198,8 +200,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userHideRepo.flush(); + } - // DELETE USER BLOCK + private static void removeUserBlocks(User user, UserBlockRepository userBlockRepo, UserRepository userRepo) { for (UserBlock block : userBlockRepo.findByUserFrom(user)) { User u = block.getUserTo(); if (u != null && u.getBlockedByUsers() != null) { @@ -220,8 +223,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userBlockRepo.flush(); + } - // DELETE USER REPORT + private static void removeUserReports(User user, UserReportRepository userReportRepo, UserRepository userRepo) { for (UserReport report : userReportRepo.findByUserFrom(user)) { User u = report.getUserTo(); if (u != null && u.getReportedByUsers() != null) { @@ -242,8 +246,9 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userRepo.flush(); userReportRepo.flush(); + } - // DELETE USER CONVERSATION + private static void removeUserConversations(User user, ConversationRepository conversationRepo, UserRepository userRepo) { for (Conversation c : conversationRepo.findByUsers_Id(user.getId())) { for (User u : c.getUsers()) { if (u != null && u.getConversations() != null) { @@ -253,8 +258,11 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } conversationRepo.delete(c); } + conversationRepo.flush(); + userRepo.flush(); + } - // DELETE USER VERIFICATION + private static void removeUserVerifications(User user, UserVerificationPictureRepository userVerificationPictureRepo) { for (UserVerificationPicture v : userVerificationPictureRepo.findByUserNo(user)) { v.getUserNo().remove(user); userVerificationPictureRepo.save(v); @@ -265,8 +273,6 @@ public static void removeUserDataCascading(User user, UserDeleteParams userDelet } userVerificationPictureRepo.flush(); - conversationRepo.flush(); - userRepo.flush(); } public static String stripB64Type(String s) { From bc2c520046b887f004ad95fb4df9e8ee112d56b9 Mon Sep 17 00:00:00 2001 From: sruthi7553 <43843857+sruthi7553@users.noreply.github.com> Date: Mon, 20 Nov 2023 20:52:51 -0400 Subject: [PATCH 5/5] Revert "Alovoa changes" --- pom.xml | 7 ---- .../com/nonononoki/alovoa/lib/OxCaptcha.java | 10 ++--- .../alovoa/repo/UserRepository.java | 13 ++++-- .../alovoa/service/UserService.java | 42 ++++++++----------- 4 files changed, 31 insertions(+), 41 deletions(-) diff --git a/pom.xml b/pom.xml index ea5d866c..6a66732c 100644 --- a/pom.xml +++ b/pom.xml @@ -180,13 +180,6 @@ com.github.buckelieg minify-maven-plugin 2.0.1 - - - org.codehaus.plexus - plexus-utils - 3.5.1 - - default-minify diff --git a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java index f4ad97a7..325055f8 100644 --- a/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java +++ b/src/main/java/com/nonononoki/alovoa/lib/OxCaptcha.java @@ -30,9 +30,8 @@ import javax.imageio.ImageIO; public class OxCaptcha { - private static final Random RAND = new SecureRandom(); - // private static final Random RAND = new Random(); - private static final double TWO_PI = 6.2831853071795862D; + private static final Random RAND = new SecureRandom(); +// private static final Random RAND = new Random(); private BufferedImage _img; private Graphics2D _img_g; @@ -1046,8 +1045,7 @@ private void shearX(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < height; i++) { - double angle = (double) i / (double) period + (TWO_PI * phase) / frames; - double d = (period >> 1) * Math.sin(angle); + double d = (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * phase) / frames); g.copyArea(0, i, width, 1, (int) d, 0); g.setColor(_bg_color); if (d >= 0) { @@ -1064,7 +1062,7 @@ private void shearY(Graphics2D g, int period, int phase, int width, int height) int frames = 15; for (int i = 0; i < width; i++) { - double d = (period >> 1) * Math.sin((float) i / period + (TWO_PI * phase) / frames); + double d = (period >> 1) * Math.sin((float) i / period + (6.2831853071795862D * phase) / frames); g.copyArea(i, 0, 1, height, 0, (int) d); g.setColor(_bg_color); if (d >= 0) { diff --git a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java index 6d648281..bde4b7d5 100644 --- a/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java +++ b/src/main/java/com/nonononoki/alovoa/repo/UserRepository.java @@ -82,12 +82,17 @@ default List adminSearch() { // used for sending mails to all List findByDisabledFalseAndAdminFalseAndConfirmedTrue(); - List findTop100ActiveUsersOrderedByCreationDate(); + List findTop100ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullOrderByDatesCreationDateDesc(); - List findTop200FilteredUsers(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Collection genderIds, Sort sort); + List findTop200ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotInAndGenderIdIn( + Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, + Collection genderIds, Sort sort); - List findTop50ActiveUsersWithProfileIntentionInRangeAndExcludedIds(Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, Sort sort); + List findTop50ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualAndIdNotInAndIdNotInAndIdNotIn( + Date min, Date max, Collection likeIds, Collection hideIds, Collection blockIds, + Sort sort); // users donate - List findTop20ActiveDonors(Date minDate, Date maxDate); + List findTop20ByDisabledFalseAndAdminFalseAndConfirmedTrueAndIntentionNotNullAndLocationLatitudeNotNullAndProfilePictureNotNullAndDatesDateOfBirthGreaterThanEqualAndDatesDateOfBirthLessThanEqualOrderByTotalDonationsDesc( + Date minDate, Date maxDate); } diff --git a/src/main/java/com/nonononoki/alovoa/service/UserService.java b/src/main/java/com/nonononoki/alovoa/service/UserService.java index 5f965b8c..8b2c8ef9 100644 --- a/src/main/java/com/nonononoki/alovoa/service/UserService.java +++ b/src/main/java/com/nonononoki/alovoa/service/UserService.java @@ -122,16 +122,16 @@ public class UserService { public static void removeUserDataCascading(User user, UserDeleteParams userDeleteParam) { - removeUserLikes(user, userDeleteParam.getUserLikeRepo(), userDeleteParam.getUserRepo()); - removeUserNotifications(user, userDeleteParam.getUserNotificationRepo(), userDeleteParam.getUserRepo()); - removeUserHides(user, userDeleteParam.getUserHideRepo(), userDeleteParam.getUserRepo()); - removeUserBlocks(user, userDeleteParam.getUserBlockRepo(), userDeleteParam.getUserRepo()); - removeUserReports(user, userDeleteParam.getUserReportRepo(), userDeleteParam.getUserRepo()); - removeUserConversations(user, userDeleteParam.getConversationRepo(), userDeleteParam.getUserRepo()); - removeUserVerifications(user, userDeleteParam.getUserVerificationPictureRepo()); - } - - private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, UserRepository userRepo) { + UserRepository userRepo = userDeleteParam.getUserRepo(); + UserLikeRepository userLikeRepo = userDeleteParam.getUserLikeRepo(); + ConversationRepository conversationRepo = userDeleteParam.getConversationRepo(); + UserNotificationRepository userNotificationRepo = userDeleteParam.getUserNotificationRepo(); + UserHideRepository userHideRepo = userDeleteParam.getUserHideRepo(); + UserBlockRepository userBlockRepo = userDeleteParam.getUserBlockRepo(); + UserReportRepository userReportRepo = userDeleteParam.getUserReportRepo(); + UserVerificationPictureRepository userVerificationPictureRepo = userDeleteParam.getUserVerificationPictureRepo(); + + // DELETE USER LIKE for (UserLike like : userLikeRepo.findByUserFrom(user)) { User u = like.getUserTo(); if (u != null && u.getLikedBy() != null) { @@ -153,9 +153,8 @@ private static void removeUserLikes(User user, UserLikeRepository userLikeRepo, } userRepo.flush(); userLikeRepo.flush(); - } - private static void removeUserNotifications(User user, UserNotificationRepository userNotificationRepo, UserRepository userRepo) { + // DELETE USER NOTIFICATION for (UserNotification notification : userNotificationRepo.findByUserFrom(user)) { User u = notification.getUserTo(); if (u != null && u.getNotificationsFrom() != null) { @@ -176,9 +175,8 @@ private static void removeUserNotifications(User user, UserNotificationRepositor } userRepo.flush(); userNotificationRepo.flush(); - } - private static void removeUserHides(User user, UserHideRepository userHideRepo, UserRepository userRepo) { + // DELETE USER HIDE for (UserHide hide : userHideRepo.findByUserFrom(user)) { User u = hide.getUserTo(); if (u != null && u.getHiddenByUsers() != null) { @@ -200,9 +198,8 @@ private static void removeUserHides(User user, UserHideRepository userHideRepo, } userRepo.flush(); userHideRepo.flush(); - } - private static void removeUserBlocks(User user, UserBlockRepository userBlockRepo, UserRepository userRepo) { + // DELETE USER BLOCK for (UserBlock block : userBlockRepo.findByUserFrom(user)) { User u = block.getUserTo(); if (u != null && u.getBlockedByUsers() != null) { @@ -223,9 +220,8 @@ private static void removeUserBlocks(User user, UserBlockRepository userBlockRep } userRepo.flush(); userBlockRepo.flush(); - } - private static void removeUserReports(User user, UserReportRepository userReportRepo, UserRepository userRepo) { + // DELETE USER REPORT for (UserReport report : userReportRepo.findByUserFrom(user)) { User u = report.getUserTo(); if (u != null && u.getReportedByUsers() != null) { @@ -246,9 +242,8 @@ private static void removeUserReports(User user, UserReportRepository userReport } userRepo.flush(); userReportRepo.flush(); - } - private static void removeUserConversations(User user, ConversationRepository conversationRepo, UserRepository userRepo) { + // DELETE USER CONVERSATION for (Conversation c : conversationRepo.findByUsers_Id(user.getId())) { for (User u : c.getUsers()) { if (u != null && u.getConversations() != null) { @@ -258,11 +253,8 @@ private static void removeUserConversations(User user, ConversationRepository co } conversationRepo.delete(c); } - conversationRepo.flush(); - userRepo.flush(); - } - private static void removeUserVerifications(User user, UserVerificationPictureRepository userVerificationPictureRepo) { + // DELETE USER VERIFICATION for (UserVerificationPicture v : userVerificationPictureRepo.findByUserNo(user)) { v.getUserNo().remove(user); userVerificationPictureRepo.save(v); @@ -273,6 +265,8 @@ private static void removeUserVerifications(User user, UserVerificationPictureRe } userVerificationPictureRepo.flush(); + conversationRepo.flush(); + userRepo.flush(); } public static String stripB64Type(String s) {