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 フィールドを使用する
- シンプルなタイプのチェックのために、アバタータイプフィールドを直接チェック - 新しいアバターを作成するときにアバタータイプを設定する - よりシンプルでよりパフォーマントなアプローチ
すべてのユーザアバターをプロキシではなく、実際のエンティティティを取得
- avatar から userId を取得し、findByUserId をクエリします(実際のエンティティを返します) - リストから一致するアバターを見つけて、インスタンスをチェックする - これは、作業からインスタンスを防止するプロキシの問題を回避します
アバターが写真かアバターのクリエイターであるかどうかを点検するのに簡単なフィルターを使用して下さい
- 複雑なプロキシ検出ロジックを削除します - 単にAvatarPhotoであるかどうかを点検するためにfindByIdの結果をろ過して下さい - 写真がない場合は、デフォルトでAvatar Creator - より簡単なアプローチ
Hibernate LazyInitializerを使用して、プロキシから実際のエンティティティメントクラスを取得する
- HibernateProxyのLazyInitializerにアクセスして、持続的なクラスを取得 - 永続クラスがAvatarPhotoまたはAvatarAvatar Creatorであるかどうかをチェックする - 強制初期化(************************) - これは、プロキシであっても、アバ...
直接キャストを使用して、リフレクションではなくアバタータイプを決定する
- プロキシの初期化を強制するためにAvatarPhotoに最初に鋳造を試みて下さい - キャスト直後のアクセスgetFileExtension() - 写真のキャストが失敗した場合、AvatarAvatar Creatorに戻って秋 - タイプ検出のためのよりよい間違いの処理
InvocationTargetException をキャッチすることでプロキシタイプの検出を向上
- プロキシのメソッドを呼び出して実際のタイプを決定するときにClassCastExceptionを処理する - まずはgetFileExtension(写真)、getStyle(Avatar Creator)をお試しください。 - Hibernateプロキシタイプの検出のためのより良いエラー処理
アバタータイプの検出のためのHibernateのプロキシ処理を改善して下さい
- getFileExtensionメソッドのクラス階層とインターフェイスを検索する - インスタンスが失敗したときにAvatarPhoto対AvatarAvatar Creatorを検出するために反射を使用する - クラス名のチェックにフォールバックを追加する - フォトアバターがAvatar Creator ava...
リポジトリからアバターをリロードして、Hibernateプロキシインスタンスの問題を解決
- 関係から読み込まれたアバターのエンティティティティティティティティは、インスタンスのチェックに失敗するハイバロンのプロキシかもしれません - リポジトリからアバターをリロードして、実際のエンティタイプ(AvatarPhotoまたはAvatarAvatar Creator)を取得する - リロードが失敗した場合、リロ...
GetThemeDomain と getPublicBucketUrl に詳細なロギングを追加して、アバター URL 生成問題のデバッグ
デバッグ用のアバターURL生成に詳細なロギングを追加
- アバター URL が生成されると、URL が作成されるときのログ - アバターが欠落しているか、URLがnullの場合のログ - これは、アバターがチャットヘッド/チャットボックス/メンバーリストに表示されていない理由を識別するのに役立ちます
RecordState の代わりに user.getAvatar() をチェックすることで、アクティブなアバターを決定します
- バックエンドは、user.getAvatar() と比較して、アバターがアクティブであるというマークを正しくマークします。 - これは、APIレスポンスのisActiveフラグが実際のアクティブアバターを反映していることを確認します。 - アバターの変更が正しく主張されていない問題を修正
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...