Clear session data before deleting key to ensure session is unusable
- Set session data to empty JSON ({}) before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handli...
Improve logout cookie clearing - clear cookies across all domain/path combinations
- Clear cookies with base domain (e.g., .kamocrm.com) to cover all subdomains - Clear cookies for current hostname without domain attribute - Clear cookies unre...
Kích hoạt đường ống dẫn sau khi Kamo-shared-litory Avatar được cập nhật
Dùng trường kiểu Avatar thay cho phát hiện ủy nhiệm phức tạp
- Kiểm tra trực tiếp trường hình nhân cho đơn giản kiểm tra - Đặt kiểu Avatar khi tạo ra hình nhân mới - Cách tiếp cận đơn giản hơn nhiều
Truy vấn mọi nhân vật người dùng để có được thực thể thay vì ủy nhiệm
- Lấy danh sách người dùng từ Avatar, rồi truy vấn ByUserId (trở lại thực thể thực tế) - Tìm hình nhân trùng trong danh sách và kiểm tra ví dụ - Điều này tránh ...
Dùng bộ lọc đơn giản để kiểm tra xem Avatar là ảnh chụp hay Avatar
- Loại bỏ logic phát hiện ủy nhiệm phức tạp - Đơn giản chỉ cần lọc tìm ById kết quả để kiểm tra nếu đó là Avatar photo - Nếu không chụp ảnh, mặc định là Avatar ...
Dùng bộ phân tích tập tin giả mạo để lấy hạng thực tế từ ủy nhiệm
- Truy cập máy đo độ cao để có được lớp học bền bỉ - Kiểm tra nếu lớp học bền bỉ là ảnh Avatar hay AvatarAvatar - Bắt đầu sử dụng * BOP - Điều này sẽ xác định c...
Dùng máy đúc trực tiếp để xác định kiểu Avatar thay vì phản ánh
- Thử chiếu ảnh Avatar trước để bắt đầu ủy nhiệm - Truy cập nhận tập tin thực hiện () trực tiếp sau khi đúc - Quay trở lại với Đấng sáng tạo Avatar Avatar. - Lỗ...
Cải thiện kiểu phát hiện ủy nhiệm bằng cách bắt gặp "Kẻ trừ tà"
- Xử lý classCastrapion khi các phương pháp từ chối ủy nhiệm để xác định kiểu thực tế - Thử lấy file Extenion trước (photo), rồi lấy Strile (Avatar Creator) - T...
Cải thiện khả năng quản lý ủy nhiệm giả cho khả năng phát hiện kiểu Avatar
- Tìm kiếm cấp bậc và giao diện để nhận được các phương pháp mở rộng tập tin - Dùng hình phản chiếu để phát hiện ảnh Avatar đấu với Đấng tạo ra Avatar Avatar kh...
Nạp lại Avatar từ kho để giải quyết tiến trình ủy nhiệm Hiberate
- Các thực thể Avatar được chuyển từ các mối quan hệ có thể bị thất bại trong việc kiểm tra. - Nạp lại Avatar từ kho để lấy thực thể thực sự. - Thêm logic hậu p...
Thêm ghi nhật ký chi tiết để lấy ThemeDomain và getPulicBuetUetril để gỡ lỗi các vấn đề thế hệ URL Avatar
Thêm nhật ký chi tiết vào thế hệ URL Avatar để gỡ lỗi
- Bản ghi khi Avatar URL được tạo ra, những gì URL được tạo ra - Bản ghi khi Avatar mất tích hoặc URL là vô giá trị - Điều này sẽ giúp xác định tại sao Avatar k...
Quyết định Avatar hoạt động bằng cách kiểm tra người dùng.getAvatar () thay cho recordStet
- Hậu phương bây giờ đánh dấu chính xác Avatar nào đang hoạt động bằng cách so sánh với người dùng.getAvatar () - Điều này đảm bảo các lá cờ hình lập thể trong ...
Add avatar URLs to members by-department endpoint with override mechanism
- Include avatar URL in each member response from **************** - Respect override mechanism: member avatar (if exists) → user avatar (default) - Frontend ...
Handle ISO date format and improve avatarId type parsing
- Added support for ISO date format (YYYY-MM-DD) in addition to M/d/yyyy - Improved avatarId parsing to handle Number types (Double, BigDecimal, etc.) from JSON...
Add better error handling and logging for user/member save operations
- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...
Improve avatarId parsing to handle string, integer, and long types
- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors
Add detailed logging to updateMemberProfile for debugging
- Added logging at start of updateMemberProfile method - Added logging before and after saving user and member - Improved error response to include error detail...
Add support for updating user name fields and dateOfBirth in member profile
- Added UserRepository to MemberController - Updated updateMemberProfile to handle namePrefix, nameFirst, nameMiddle, nameLast, nameSuffix, nameFirstAKA, nameLa...
Store avatar hash and extension in *** session data
- Added updateSession method to KSessionService for updating session fields - Updated setActiveAvatar to store userAvatarHash and userAvatarExtension in session...
Include avatar URLs in member profile response
- Added helper methods to generate avatar URLs (getThemeDomain, getPublicBucketName, generateFileHash, getPublicBucketUrl, generateAvatarUrl) - Updated getMembe...
Add ThemeBackgroundController with hash-based storage and public bucket support
Use correct bucket and object path structure for MinIO uploads
- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...
Properly handle MinIO upload failures for avatars
- Remove silent exception swallowing in Avatar Creator avatar creation - Add proper error handling and rollback for failed uploads - Delete database record if f...
Remove ID-based fallback code, use only hash-based naming
- Remove all try-catch fallback logic for missing fileHash column - Remove ID-based file naming fallbacks - Code now exclusively uses hash-based file storage - ...
Handle missing fileHash column gracefully
- Add try-catch around fileHash access to handle missing database column - Fall back to ID-based file naming if fileHash column doesn't exist yet - Allows code ...
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileEx...
Add logging and ensure public bucket URL format matches working pattern
Revert to getPresignedUrl like backgrounds - getPresignedUrlWithEndpoint was breaking uploads
Add retry logic for Maven dependency downloads to handle transient Central failures
Rebuild avatar system - backend generates presigned URLs directly like backgrounds
Simplify StorageController - validate OTK, get image, stream it
Tạo địa chỉ URL có dấu sẵn thường thay thế tên máy bằng miền sắc thái
Dùng getPre ký tự Url WithEndpoint với miền sắc thái cho tất cả các URL Avatar
Sử dụng phương pháp getPre ký tặng Url mà hoạt động thay vì nhận đượcPre ký tự Url WithEndpoint
Add detailed logging to avatar URL generation to identify failures
Generate presigned URLs with theme domain directly in backend for avatars
Return objectPath instead of presigned URLs - Next.js will generate them
Use getPresignedUrlWithEndpoint to generate URLs with correct signature for theme domain
Simplify avatar URL generation - use same logic as frontend getThemePath, just replace endpoint in presigned URL
Replace internal IP endpoint with theme domain in presigned URLs as fallback
Add comprehensive logging to avatar URL generation to debug empty URLs
Như những gì anh thấy vận chuyển?
Mỗi một bản cập nhật này đều được tự động cập nhật trong không gian làm việc của bạn. Bắt đầu tự do và xem nó lớn lên tuần này qua tuần khác.