diff --git a/.gitignore b/.gitignore index 1b6985c..da56994 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ # Ignore Gradle build output directory build +.aider* diff --git a/bin/main/application-dev.properties b/bin/main/application-dev.properties new file mode 100644 index 0000000..94b18e0 --- /dev/null +++ b/bin/main/application-dev.properties @@ -0,0 +1,9 @@ +# Lokale Entwicklung – überschreibt application.properties + +# Cookies ohne Secure-Flag, da lokal kein HTTPS läuft +app.cookie.secure=false + +# Klartext-Credentials für lokale DB (kein Umgebungsvariablen-Zwang) +spring.mail.username=local@dev.invalid +spring.mail.password=unused +jwt.keystore.password=XUR!Rv&f$j3UsqD& diff --git a/bin/main/application.properties b/bin/main/application.properties index af966fe..9861494 100644 --- a/bin/main/application.properties +++ b/bin/main/application.properties @@ -22,18 +22,19 @@ spring.jpa.properties.hibernate.type.preferred_uuid_jdbc_type=VARCHAR # Mailpit spring.mail.host=smtp-relay.brevo.com spring.mail.port=587 -spring.mail.username=a6b17a001@smtp-brevo.com -spring.mail.password=xsmtpsib-77b691d562154574133d12b09d44a06e166d30091aac6642480771a0ae463a79-8yH3jHOd4nMMAwuS +spring.mail.username=${MAIL_USERNAME} +spring.mail.password=${MAIL_PASSWORD} spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true # JWT Keystore jwt.keystore.path=classpath:xxx.jks -jwt.keystore.password=${JWT_KEYSTORE_PASSWORD:XUR!Rv&f$j3UsqD&} +jwt.keystore.password=${JWT_KEYSTORE_PASSWORD} jwt.keystore.alias=xxx # App app.base-url=http://localhost:8080 +app.cookie.secure=true # Theme – alle Farben hier ändern, Email-Style passt sich automatisch an app.theme.color-bg=#1a1a2e diff --git a/bin/main/de/oaa/xxx/config/CookieFactory.class b/bin/main/de/oaa/xxx/config/CookieFactory.class new file mode 100644 index 0000000..0a4282b Binary files /dev/null and b/bin/main/de/oaa/xxx/config/CookieFactory.class differ diff --git a/bin/main/de/oaa/xxx/config/JwtFilter.class b/bin/main/de/oaa/xxx/config/JwtFilter.class index 8bc0e48..5960bf6 100644 Binary files a/bin/main/de/oaa/xxx/config/JwtFilter.class and b/bin/main/de/oaa/xxx/config/JwtFilter.class differ diff --git a/bin/main/de/oaa/xxx/config/JwtService.class b/bin/main/de/oaa/xxx/config/JwtService.class index c2b4a84..0773f13 100644 Binary files a/bin/main/de/oaa/xxx/config/JwtService.class and b/bin/main/de/oaa/xxx/config/JwtService.class differ diff --git a/bin/main/de/oaa/xxx/config/RateLimitFilter$Window.class b/bin/main/de/oaa/xxx/config/RateLimitFilter$Window.class new file mode 100644 index 0000000..8927b01 Binary files /dev/null and b/bin/main/de/oaa/xxx/config/RateLimitFilter$Window.class differ diff --git a/bin/main/de/oaa/xxx/config/RateLimitFilter.class b/bin/main/de/oaa/xxx/config/RateLimitFilter.class new file mode 100644 index 0000000..3df2c8a Binary files /dev/null and b/bin/main/de/oaa/xxx/config/RateLimitFilter.class differ diff --git a/bin/main/de/oaa/xxx/config/SecurityConfig.class b/bin/main/de/oaa/xxx/config/SecurityConfig.class index 34ffe48..7e1ab23 100644 Binary files a/bin/main/de/oaa/xxx/config/SecurityConfig.class and b/bin/main/de/oaa/xxx/config/SecurityConfig.class differ diff --git a/bin/main/de/oaa/xxx/config/TokenBlacklistService.class b/bin/main/de/oaa/xxx/config/TokenBlacklistService.class new file mode 100644 index 0000000..dfbac23 Binary files /dev/null and b/bin/main/de/oaa/xxx/config/TokenBlacklistService.class differ diff --git a/bin/main/de/oaa/xxx/emailchange/EmailChangeController$EmailChangeRequest.class b/bin/main/de/oaa/xxx/emailchange/EmailChangeController$EmailChangeRequest.class index bbbdc94..61a4d7c 100644 Binary files a/bin/main/de/oaa/xxx/emailchange/EmailChangeController$EmailChangeRequest.class and b/bin/main/de/oaa/xxx/emailchange/EmailChangeController$EmailChangeRequest.class differ diff --git a/bin/main/de/oaa/xxx/emailchange/EmailChangeController.class b/bin/main/de/oaa/xxx/emailchange/EmailChangeController.class index 3acc18f..01ea370 100644 Binary files a/bin/main/de/oaa/xxx/emailchange/EmailChangeController.class and b/bin/main/de/oaa/xxx/emailchange/EmailChangeController.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$AssignTaskRequest.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$AssignTaskRequest.class index 1d38ada..ae9220c 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$AssignTaskRequest.class and b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$AssignTaskRequest.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$FreezeRequest.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$FreezeRequest.class index 3376133..935af10 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$FreezeRequest.class and b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$FreezeRequest.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$ModifyCardsRequest.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$ModifyCardsRequest.class index 118f39c..36dee6b 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$ModifyCardsRequest.class and b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$ModifyCardsRequest.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class index 4c42648..36fec47 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class and b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController$FreezeRequest.class b/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController$FreezeRequest.class index 528920f..c1ceaa8 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController$FreezeRequest.class and b/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController$FreezeRequest.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController.class b/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController.class index e2ff41d..3c29255 100644 Binary files a/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController.class and b/bin/main/de/oaa/xxx/games/chastity/timelock/TimeLockController.class differ diff --git a/bin/main/de/oaa/xxx/games/chastity/ttlock/TTLockTest.class b/bin/main/de/oaa/xxx/games/chastity/ttlock/TTLockTest.class deleted file mode 100644 index d87240c..0000000 Binary files a/bin/main/de/oaa/xxx/games/chastity/ttlock/TTLockTest.class and /dev/null differ diff --git a/bin/main/de/oaa/xxx/games/chastity/ttlock/unlocktypes b/bin/main/de/oaa/xxx/games/chastity/ttlock/unlocktypes deleted file mode 100644 index 0d5b861..0000000 --- a/bin/main/de/oaa/xxx/games/chastity/ttlock/unlocktypes +++ /dev/null @@ -1,121 +0,0 @@ -1-unlock by app - -4-unlock by passcode - -5-Rise the lock (for parking lock) - -6-Lower the lock (for parking lock) - -7-unlock by IC card - -8-unlock by fingerprint - -9-unlock by wrist strap - -10-unlock by Mechanical key - -11-lock by app - -12-unlock by gateway - -29-apply some force on the Lock - -30-Door sensor closed - -31-Door sensor open - -32-open from inside - -33-lock by fingerprint - -34-lock by passcode - -35-lock by IC card - -36-lock by Mechanical key - -37-Use APP button to control the lock (rise, fall, stop, lock), mostly used for roller shutter door - -42-received new local mail - -43-received new other cities' mail - -44-Tamper alert - -45-Auto Lock - -46-unlock by unlock key - -47-lock by lock key - -48-System locked ( Caused by, for example: Using INVALID Passcode/Fingerprint/Card several times) - -49-unlock by hotel card - -50-Unlocked due to the high temperature - -51-Try to unlock with a deleted card - -52-Dead lock with APP - -53-Dead lock with passcode - -54-The car left (for parking lock) - -55-Use remote control lock or unlock lock - -57-Unlock with QR code success - -58-Unlock with QR code failed, it's expired - -59-Double locked - -60-Cancel double lock - -61-Lock with QR code success - -62-Lock with QR code failed, the lock is double locked - -63-Auto unlock at passage mode - -64-Door unclosed alarm - -65-Failed to unlock - -66-Failed to lock - -67-Face unlock success - -68-Face unlock failed - door locked from inside - -69-Lock with face - -71-Face unlock failed - expired or ineffective - -75-Unlocked by App granting - -76-Unlocked by remote granting - -77-Dual authentication Bluetooth unlock verification success, waiting for second user - -78-Dual authentication password unlock verification success, waiting for second user - -79-Dual authentication fingerprint unlock verification success, waiting for second user - -80-Dual authentication IC card unlock verification success, waiting for second user - -81-Dual authentication face card unlock verification success, waiting for second user - -82-Dual authentication wireless key unlock verification success, waiting for second user - -83-Dual authentication palm vein unlock verification success, waiting for second user - -84-Palm vein unlock success - -85-Palm vein unlock success - -86-Lock with palm vein - -88-Palm vein unlock failed - expired or ineffective - -92-Administrator password to unlock \ No newline at end of file diff --git a/bin/main/de/oaa/xxx/location/LocationEventController.class b/bin/main/de/oaa/xxx/location/LocationEventController.class index 878a9e5..4af0952 100644 Binary files a/bin/main/de/oaa/xxx/location/LocationEventController.class and b/bin/main/de/oaa/xxx/location/LocationEventController.class differ diff --git a/bin/main/de/oaa/xxx/user/LoginController$LoginRequest.class b/bin/main/de/oaa/xxx/user/LoginController$LoginRequest.class index 3468070..7524117 100644 Binary files a/bin/main/de/oaa/xxx/user/LoginController$LoginRequest.class and b/bin/main/de/oaa/xxx/user/LoginController$LoginRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/LoginController.class b/bin/main/de/oaa/xxx/user/LoginController.class index 80ae818..a360f35 100644 Binary files a/bin/main/de/oaa/xxx/user/LoginController.class and b/bin/main/de/oaa/xxx/user/LoginController.class differ diff --git a/bin/main/de/oaa/xxx/user/User.class b/bin/main/de/oaa/xxx/user/User.class index 53d9347..3a16bd4 100644 Binary files a/bin/main/de/oaa/xxx/user/User.class and b/bin/main/de/oaa/xxx/user/User.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$BdsmDefaultsRequest.class b/bin/main/de/oaa/xxx/user/UserController$BdsmDefaultsRequest.class index 9d01a7d..4eb5e2f 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$BdsmDefaultsRequest.class and b/bin/main/de/oaa/xxx/user/UserController$BdsmDefaultsRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$DatingFilterRequest.class b/bin/main/de/oaa/xxx/user/UserController$DatingFilterRequest.class index a57b9d3..2cbf142 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$DatingFilterRequest.class and b/bin/main/de/oaa/xxx/user/UserController$DatingFilterRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$DatingRequest.class b/bin/main/de/oaa/xxx/user/UserController$DatingRequest.class index 4f124bb..bfdaf90 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$DatingRequest.class and b/bin/main/de/oaa/xxx/user/UserController$DatingRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$GeburtsdatumChangeRequest.class b/bin/main/de/oaa/xxx/user/UserController$GeburtsdatumChangeRequest.class index 6777983..029e8c3 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$GeburtsdatumChangeRequest.class and b/bin/main/de/oaa/xxx/user/UserController$GeburtsdatumChangeRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class b/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class index 6eb084c..312c4c6 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class and b/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$NameChangeRequest.class b/bin/main/de/oaa/xxx/user/UserController$NameChangeRequest.class index 2c3c89c..2f271ca 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$NameChangeRequest.class and b/bin/main/de/oaa/xxx/user/UserController$NameChangeRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class b/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class new file mode 100644 index 0000000..417cafd Binary files /dev/null and b/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$NotificationPreferenceRequest.class b/bin/main/de/oaa/xxx/user/UserController$NotificationPreferenceRequest.class index d9b778a..900a6af 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$NotificationPreferenceRequest.class and b/bin/main/de/oaa/xxx/user/UserController$NotificationPreferenceRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$PrivacyRequest.class b/bin/main/de/oaa/xxx/user/UserController$PrivacyRequest.class index 8bb4a74..30fdcb5 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$PrivacyRequest.class and b/bin/main/de/oaa/xxx/user/UserController$PrivacyRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$ProfilePictureRequest.class b/bin/main/de/oaa/xxx/user/UserController$ProfilePictureRequest.class index fa1b10b..5b88b83 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$ProfilePictureRequest.class and b/bin/main/de/oaa/xxx/user/UserController$ProfilePictureRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$ProfileRequest.class b/bin/main/de/oaa/xxx/user/UserController$ProfileRequest.class index 78e399d..0b265b9 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$ProfileRequest.class and b/bin/main/de/oaa/xxx/user/UserController$ProfileRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigDto.class b/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigDto.class index 0cc079d..8af561b 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigDto.class and b/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigDto.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigRequest.class b/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigRequest.class index 3f66531..b68a227 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigRequest.class and b/bin/main/de/oaa/xxx/user/UserController$TtlockUserConfigRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController.class b/bin/main/de/oaa/xxx/user/UserController.class index 5a7ab60..46c4cb7 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController.class and b/bin/main/de/oaa/xxx/user/UserController.class differ diff --git a/bin/main/de/oaa/xxx/user/UserEntity.class b/bin/main/de/oaa/xxx/user/UserEntity.class index cb36ec9..a8df5b8 100644 Binary files a/bin/main/de/oaa/xxx/user/UserEntity.class and b/bin/main/de/oaa/xxx/user/UserEntity.class differ diff --git a/bin/main/de/oaa/xxx/user/UserRepository.class b/bin/main/de/oaa/xxx/user/UserRepository.class index 6caef78..b6adc79 100644 Binary files a/bin/main/de/oaa/xxx/user/UserRepository.class and b/bin/main/de/oaa/xxx/user/UserRepository.class differ diff --git a/bin/main/de/oaa/xxx/user/UserService.class b/bin/main/de/oaa/xxx/user/UserService.class index 917a588..67fb16b 100644 Binary files a/bin/main/de/oaa/xxx/user/UserService.class and b/bin/main/de/oaa/xxx/user/UserService.class differ diff --git a/bin/main/static/community/feed.html b/bin/main/static/community/feed.html index 8782278..5db8356 100644 --- a/bin/main/static/community/feed.html +++ b/bin/main/static/community/feed.html @@ -182,10 +182,17 @@ let composeBilderArr = []; // ── Boot ── - fetch('/login/me').then(r => r.ok ? r.json() : null).then(user => { + fetch('/login/me').then(r => r.ok ? r.json() : null).then(async user => { if (user) { myUserId = user.userId; - loadFeed('mine'); + const raw = sessionStorage.getItem('feedOpenPost'); + if (raw) { + sessionStorage.removeItem('feedOpenPost'); + loadFeed('mine'); + openLbWithData(JSON.parse(raw)); + } else { + await loadFeed('mine'); + } } }).catch(() => {}); @@ -387,7 +394,7 @@ async function submitPost() { const text = document.getElementById('composeText').value.trim(); - if (!text) return; + if (!text && composeBilderArr.length === 0) return; const beitragTyp = document.querySelector('input[name="beitragTyp"]:checked').value; const multiChoice = document.getElementById('multiChoice').checked; const isPublic = document.getElementById('isPublic').checked; @@ -495,6 +502,20 @@ document.getElementById('postLightbox').classList.add('open'); } + function openLbWithData(p) { + activeLbPostId = p.postId; + activeLbPostType = p.postType || 'FEED'; + const tempDiv = document.createElement('div'); + tempDiv.innerHTML = renderPostCard(p, 'mine'); + const card = tempDiv.firstElementChild; + if (card) { + card.querySelectorAll('.post-actions').forEach(el => el.remove()); + document.getElementById('lbPostBody').innerHTML = card.innerHTML; + } + loadLbComments(p.postId, p.postType || 'FEED'); + document.getElementById('postLightbox').classList.add('open'); + } + function closeLb() { document.getElementById('postLightbox').classList.remove('open'); activeLbPostId = null; diff --git a/bin/main/static/dating/besucher.html b/bin/main/static/dating/besucher.html new file mode 100644 index 0000000..9435426 --- /dev/null +++ b/bin/main/static/dating/besucher.html @@ -0,0 +1,147 @@ + + + + + + + Profilbesucher – xXx Sphere + + + + + +
+
+

Profilbesucher

+ +
+
+
+
+ + + + + diff --git a/src/main/resources/static/dating.html b/bin/main/static/dating/dating.html similarity index 99% rename from src/main/resources/static/dating.html rename to bin/main/static/dating/dating.html index ba95aa9..e4fbb13 100644 --- a/src/main/resources/static/dating.html +++ b/bin/main/static/dating/dating.html @@ -1038,7 +1038,7 @@
🎉

Keine weiteren Profile gefunden.
Schau später wieder vorbei!

-
+
+ + + -
+
+ + +