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...
Trigger pipeline dopo kamo-shared-library avatarType aggiornamento campo
Utilizzare il campo avatarType invece di rilevamento proxy complesso
- Controllare il campo avatarTipo direttamente per un semplice controllo del tipo - Impostare avatarTipo quando si crea nuovi avatar - Molto più semplice e più ...
Query tutti gli avatar utente per ottenere entità reale invece di proxy
- Ottenere userId da avatar, quindi query findByUserId (ritorna entità reali) - Trova l'avatar corrispondente dall'elenco e controlla l'istanza - Questo evita p...
Utilizzare filtro semplice per controllare se avatar è foto o Avatar Creator
- Rimuovere la logica di rilevamento proxy complessa - Basta filtrare il risultato di findById per verificare se è AvatarPhoto - Se non foto, default a Avatar C...
Utilizzare Hibernate LazyInitializer per ottenere la classe di entità reale da proxy
- Accesso HibernateProxy's LazyInitializer per ottenere classe persistente - Controlla se la classe persistente è AvatarPhoto o AvatarAvatar Creator - L'inizial...
Suppress avvisi variabili non utilizzati nel rilevamento di tipo avatar
Utilizzare cast diretto per determinare il tipo di avatar invece di riflessione
- Provare colata a AvatarPhoto prima forzare inizializzazione proxy - Accesso getFileExtension() direttamente dopo il cast - Torna indietro a AvatarAvatar Creat...
Migliorare il rilevamento del tipo proxy catturando InvocazioneTargetException
- Maniglia ClassCastException quando si invocano metodi su proxy per determinare il tipo effettivo - Provare getFileExtension prima (foto), quindi ottenereStyle...
Migliorare la gestione del proxy Hibernate per il rilevamento di tipo avatar
- gerarchia di classe di ricerca e interfacce per il metodo getFileExtension - Utilizzare la riflessione per rilevare AvatarPhoto vs AvatarAvatar Creator quando...
Ricaricare avatar dal repository per risolvere istanza proxy Hibernate del problema
- Le entità avatar caricate da relazioni possono essere proxy ibernati che non riescono a controllare - Reload avatar da repository per ottenere il tipo di enti...
Aggiungi registrazione dettagliata per ottenereThemeDomain e ottenerePublicBucketUrl per debug avatar problemi di generazione dell'URL
Aggiungi registrazione dettagliata alla generazione di URL avatar per il debugging
- Accedi quando vengono generati URL avatar, quali URL vengono creati - Accedi quando manca l'avatar o gli URL sono nulli - Questo aiuterà a capire perché gli a...
Determinare l'avatar attivo controllando user.getAvatar() invece di RecordState
- Backend ora correttamente segna quale avatar è attivo confrontando user.getAvatar() - Questo assicura che la bandiera isActive nella risposta API rifletta l'a...
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
Generare URL prescritti normalmente quindi sostituire il nome host con il dominio tema
Utilizzare getPresignedUrlWithEndpoint con dominio tema per tutti gli URL avatar
Utilizzare getPresignedUrl metodo che funziona invece di ottenerePresignedUrlWithEndpoint
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
Use getPresignedUrlWithEndpoint to generate URLs signed for theme domain - no endpoint replacement needed
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.