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...
AvatarType 필드 대신 복잡한 프록시 탐지
- 간단한 유형 검사를 위해 avatarType 필드를 직접 검사하십시오 - 새 아바타를 만들 때 avatarType 설정 - 훨씬 간단하며 더 많은 수행 접근법
Query 모든 사용자 avatars는 프록시 대신 실제 성을 얻을
- avatar에서 userId를 얻고, findByUserId를 쿼리합니다. (실제 엔티티티를 반환합니다) - 목록에서 일치 avatar 찾기 및 인스턴스 확인 - 작업에서 인스턴스를 방지하는 프록시 문제를 방지합니다
Avatar가 사진 또는 Avatar Creator 인 경우 간단한 필터를 사용하십시오
- 복잡한 프록시 탐지 논리 제거 - 간단히 필터 findById 결과가 AvatarPhoto 인 경우 확인 - 사진이 아닌 경우, Avatar Creator에 기본값 - 훨씬 더 간단한 접근
Hibernate LazyInitializer를 사용하여 프록시에서 실제 엔티티티 클래스를 얻을 수 있습니다
- 액세스 HibernateProxy의 LazyInitializer는 지속적인 클래스를 얻을 - Persistent 클래스가 AvatarPhoto 또는 AvatarAvatar Creator 인 경우 확인 - ***********를 이용한 힘 초기화 - 이것은 프록시가 될 때 avatar...
반사 대신 avatar 유형을 결정하는 직접 던지기를 사용하십시오
- AvatarPhoto에 캐스팅을 시도 먼저 강제 프록시 초기화 - Access getFileExtension()는 캐스트 후 직접 - 사진 캐스트가 실패하면 AvatarAvatar Creator 캐스트로 돌아갑니다. - 유형 탐지를 위한 더 나은 과실 취급
InvocationTargetException을 잡아서 프록시 유형 탐지 향상
- 실제 유형을 결정하기 위해 프록시의 방법을 호출 할 때 ClassCastException 핸들 - getFileExtension을 먼저 시도하십시오 (사진), getStyle (Avatar Creator) - Hibernate 프록시 유형 탐지를 위한 더 나은 오류 처리
Avatar 유형 탐지를 위한 Hibernate 프록시 취급을 개량하십시오
- getFileExtension 메소드의 클래스 계층 및 인터페이스 검색 - 인스턴스가 실패할 때 AvatarPhoto vs AvatarAvatar Creator를 감지하는 반사 - 클래스 이름 확인에 fallback 추가 - Avatar Creator avatars로 사진 avata...
저장소에서 Reload avatar는 Hibernate 프록시 인스턴스 문제를 해결하기 위해
- Avatar entities는 관계에서로드 할 수 있습니다 Hibernate 프록시는 인스턴스 확인을 실패 - repository에서 Reload avatar는 실제 엔티티티 유형을 얻기 위해 (AvatarPhoto 또는 AvatarAvatar Creator) - reload가 실패...
Avatar URL 생성에 대한 자세한 로깅 추가
- avatar URL이 생성되면 URL이 생성됩니다. - 아바타가 누락되거나 URL이 null일 때 로그 - 이것은 왜 avatars가 chatheads/chatboxes/member 명부에서 보여주지 않는지 확인할 것을 도울 것입니다
RecordState 대신 user.getAvatar()를 검사하여 활성 avatar를 결정합니다
- 이제 avatar가 user.getAvatar()에 비교하여 활성화된 마크를 반환합니다. - API 응답의 isActive 플래그는 실제 활성 avatar를 반영합니다. - avatar 변경이 제대로 지속되지 않은 문제 수정
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...