Query 모든 사용자 avatars는 프록시 대신 실제 성을 얻을
- avatar에서 userId를 얻고, findByUserId를 쿼리합니다. (실제 엔티티티를 반환합니다) - 목록에서 일치 avatar 찾기 및 인스턴스 확인 - 작업에서 인스턴스를 방지하는 프록시 문제를 방지합니다
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가 실패...
초기 SVG는 항상 avatar가 HexHeadGroup에서 누락될 때 생성됩니다
- avatar fetch가 실패하면 초기 SVG를 생성하는 오류 처리가 삭제됩니다. - SVG 생성 논리 통합 - avatarSrc가 결코 빈 문자열이 없다
Avatar 설정 후 avatar 목록을 새로 고침
- avatar를 활성화 한 후, 업데이트 된 avatars 목록을 새로 고침 isActive 플래그 - 새로 고침 목록에서 활성 아바타 찾기 및 설정 - 이 변경은 제대로 작동하고 페이지를 새로 표시합니다
RecordState 대신 user.getAvatar()를 검사하여 활성 avatar를 결정합니다
- 이제 avatar가 user.getAvatar()에 비교하여 활성화된 마크를 반환합니다. - API 응답의 isActive 플래그는 실제 활성 avatar를 반영합니다. - avatar 변경이 제대로 지속되지 않은 문제 수정
프로필 페이지에서 avatars 목록에서 유효 avatar를로드
- Fetch avatars 목록과 활성으로 표시된 것을 찾습니다. - 목록의 전체 avatar 객체에서 activeAvatar 설정 (모든 세부 사항과 URL) - 회원 프로필에서 중복 avatar 생성 제거 (기본 정보 만) - 페이지 부하에 avatar 표시가 올바르게 표시됩니다
Detect member avatar override on page load even if returned as 'avatar'
- Add logging to see what API returns on initial load - Check if member has avatarId/memberAvatarId set to detect member override - If avatar ID matches memberA...
Ensure avatarId is always sent when activeAvatar exists
- Use corrected useDefaultUserAvatar value directly in save logic - If activeAvatar exists, always send avatarId (member override) regardless of flag - Improved...
Preserve avatar URL when saving and add defensive check
- Preserve profilePicture from activeAvatar when updating profileData after save - Add warning if activeAvatar exists but useDefaultUserAvatar is incorrectly tr...
Preserve avatar state after save to prevent revert
- Fixed save logic to properly send avatarId when avatar is selected - Preserve current activeAvatar and useDefaultUserAvatar state before refresh - If refresh ...
Update avatar state after saving profile to prevent revert
- After saving profile, refresh and update activeAvatar state from API response - Update useDefaultUserAvatar flag to match saved state - Ensures avatar remains...
Prevent avatar from switching to empty avatar when selecting
- Immediately set selected avatar in UI for instant feedback - Only update with refreshed data if it has a URL and is the same avatar - Prevents overwriting sel...
Keep avatar manager dialog open and fix profile avatar display
- Removed handleClose() calls when selecting, creating, or uploading avatars - Dialog now stays open so users can continue selecting/managing avatars - After cr...
Ensure avatar URL is properly preserved and displayed from database
- Changed URL handling to preserve empty strings (use ?? instead of ||) - Updated MemberHeader props to prioritize profileData.profilePicture which contains the...
Ensure avatar is properly set from database on profile tab load
- Fixed URL handling to use original API response URL instead of potentially null transformed value - Added synchronization between activeAvatar and userAvatars...
Resolve avatar display and persistence issues in profile tab
- Fix initial avatar display to show correct primary avatar instead of default initials - Fix avatar selection from list to properly update member avatar and pe...
Correctly construct security provider logo URL using domain parsing
Correct Next.js 15 route handler params type and remove .js extension from dynamic imports
Use GitHub actions directly instead of code.forgejo.org to avoid 503 errors
- Changed actions/checkout@v4 to **************** - Changed docker/login-action@v3 to **************** - Changed docker/build-push-action@v5 to ****************...
Fetch security provider organization directly by ID instead of from networks array
- Created new API route /api/security/org/[id] to proxy SecurityService organization by ID endpoint - Updated SettingsView to fetch security provider org direct...
현재 org 로고로 보안 공급자 로고를 위한 동일한 URL 본을 사용하십시오
- 보안 공급자 도메인을 가진 현재 org 로고 URL 경로에 있는 첫번째 폴더를 대체하십시오 - 폴더 이름에 대한 보안 공급자 도메인의 dashes와 도트를 대체 - 예: *********** 이름: *************** - 회원 탭 로고로 정확한 패턴 일치
ThemeLogo 및 네트워크 페이지 패턴과 일치하는 로고 URL 생성을 단순화
- 현재 org (Membership & Permissions)를 위해: ThemeLogo 처럼 getThemePath ()를 직접 사용하십시오 - 보안 공급자 (프로필): 네트워크 페이지와 같은 보안 공급자의 도메인을 가진 getThemePathForDomain()를 사용하십시오 - ...
탭에서 로고 디스플레이를 개선 - Box 래퍼와 아이콘 버퍼를 사용하여 가을백 로직을 추가합니다
- 더 나은 MUI 호환성을위한 Box 래퍼와 Tab 아이콘 버퍼를 사용하여 다시 전환 - 도메인 필드가 유효하지 않은 경우 도메인[0]을 사용하는 fallback 추가 - 로고 fetching 및 URL 생성에 대한 포괄적 인 로깅 추가 - OnLoad/onError 핸들러가 이미지 ...
탭 라벨에 로고 디스플레이 수정 - 아이콘 prop 대신 라벨에 img 태그 사용
- 탭 아이콘 prop을 사용하여 img 태그를 사용하여 라벨에서 로고를 직접 삽입 - debug 로고 fetching 및 URL 생성에 콘솔 로깅 추가 - 이제 로고는 Flexbox 레이아웃을 사용하여 탭 텍스트와 인라인으로 나타납니다
Increase kubectl rollout timeout from 300s to 900s
- Increased kubectl rollout status timeout to 900 seconds (15 minutes) for both k1m1 and k2m1 deployments - This matches the increased progressDeadlineSeconds o...
Increase deployment progressDeadlineSeconds from 60s to 600s
- Increased progressDeadlineSeconds to 600 seconds (10 minutes) to allow Next.js app sufficient time to build and start - Previous 60 second timeout was too sho...
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
Improve error handling and logging for member profile updates
- Added detailed logging to API route for PUT requests - Improved error response handling to include actual error messages - Fixed avatarId type conversion (str...
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...
Improve error handling and refresh profile data after save
- Added detailed error messages when profile save fails - Profile data is now refreshed from server after successful save - Better error logging for debugging
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...
Remove URL input for backgrounds, improve upload error handling, fix avatar persistence
- Removed URL input field for backgrounds - only uploads via popup are allowed - Improved error handling for background uploads with detailed error messages - F...
Resolve lint errors in ProfileTab and MemberHeader
- Added Button import to MemberHeader - Fixed newAvatar scope issue in handleUploadPhoto and handleCreateAvatar Creator - Stored avatarIdToRefresh in outer scop...
Refresh profile data after setting avatar and ensure proper activation
- handleSelectAvatar now sets avatar as active via API and refreshes profile data - handleUploadPhoto and handleCreateAvatar Creator now update member and refre...
Convert null to undefined for avatarSrc type compatibility
- fetchMemberAvatar returns string | null but avatarSrc expects string | undefined - Use nullish coalescing operator to convert null to undefined
Add .js extension to dynamic imports for node16 module resolution
- TypeScript with node16 moduleResolution requires explicit file extensions - Changed relative imports to include .js extension
Use relative paths for dynamic imports of avatarUtils
- Changed dynamic imports from @/app/lib/avatarUtils to relative paths - Fixes TypeScript module resolution error during build
Fix async/await syntax error in HexHeadGroup useEffect
- Wrapped Promise.all in async function to fix build error - useEffect callbacks cannot be async directly
Update avatarUtils to use URLs directly from member profile
- Backend now includes avatar URLs in member profile response - Removed unnecessary second API call to /api/security/avatars/{id} - More efficient and works cor...
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...