Rendere RoleRightsSyncService completamente self-healing su ogni boot
Aggiungere o rimuovere un RoleRightType non deve mai più richiedere la corsa KamoInitializerService. syncAll() ora esegue tre fasi su ogni startup: 1. I vincol...
Goccia i vincoli CHECK stanti sulle colonne enum di default-role-rights
Hibernate autogenera CHECK (colonna IN ('VAL1', 'VAL2', ...) vincoli su TABELLA CREATA per le colonne @Enumerated (EnumType.STRING), congelando l'enum lista dei...
Aggiungere vincoli unici mancanti per gli upserts role-right
Non e' vero. + syncSecurityModelRoleRights uso "ON CONFLICT (role id, right type) NONHING` e `ON CONFLICT (default role id, right type) NONHING`, che richiedono...
Aggiungi un vincolo unico su (role id, right type) in OrgRoleRight
Obbligatorio per la CONFLICAZIONE Senza questo vincolo, la query di sincronizzazione non riesce con "nessun unico o esclusione vincolo corrispondente alla speci...
Rimuovi getType() chiamate da OrganizationController dopo Organizzazione Tipo di rimozione
Rimuovere l'organizzazione deprecata Tipologia
L'enum è in pensione — l'identificazione del proprietario della piattaforma org è ora guidata dalla nuova Organizzazione. èTopLevel bandiera, e i valori rimanen...
Aggiungere le impostazioni dell'Amministrazione della Piattaforma — borse di org, eventi, catalogo di piani
- Nuove pagine sotto /settings/platform (guardate da hasPlatformAdminAccess): - /organizzazioni — elencare ogni org, concedere/modificare/rivocare piani COMP co...
Aggiungi PlatformAdmin controller + servizio per borse di comp plan
- PlatformAdminController a /api/billing/platform (class-level @PlatformAdminOnly) - GET /orgs, GET /orgs/{orgId} - POST /orgs/{orgId}/grants, PATCH|DELETE /org...
Seed Organization.isTopLevel per kamocrm e OWNER UNLIMITED autocomp
- DataLoader: drop Organization Digitare arg da creareOrg, set isTopLevel=true su kamocrm - KamoCRMAgeReqUpdateRunner + test: match su IS TOP LEVEL = TRUE invec...
Smettere di sovrascrivere avatar membro con avatar utente registrato sulla vista profilo
fetchAvatars catturato /api/security/avatars (nessuno scopo membroID — sempre restituisce gli avatar dell'utente connesso) e chiamato setActiveAvatar, clobberin...
Aggiungere Organization.isTopLevel, PaymentMethod.COMP, tipi di eventi COMP *; rimuovere Organizzazione Tipologia
- Organizzazione: sostituire il campo `type` morto con la bandiera `isTopLevel` per l'identificazione del proprietario della piattaforma - PaymentMethod: aggiun...
Nascondi anche il pulsante di cancellazione per i proprietari di org sulla pagina di rete
Rettifica della guardiaIncompletoTraduzioni contro l'arresto del contesto di primavera
Aggiungi percorso proxy di sincronizzazione mancante
POST /api/security/roles/sync-rights mancava un gestore proxy Next.js, causando il pulsante Sync Rights nelle impostazioni di Security Roles fallire sempre.
Nascondi il pulsante di cancellazione per l'org originale dell'utente nella pagina di rete
Impostare orgOriginal sulla registrazione ed esporre èOriginalOrg in mynetworks
Aggiungi campo orgOriginal all'Utente per monitorare la registrazione org
Utilizzare PublicChatVisitor displayName per requestorName sui biglietti dei visitatori
Biglietti d'ingresso per il membro del sistema org, così il DTO stava navigando il nome del proprietario dell'org nella colonna del richiedente. Caduta torna al...
Rimuovere le chiamate di ripristino filtro stante dopo la rimozione del filtro colonna
Diritti di sostegno dei richiedenti e visione dei biglietti a doppia modalità
- NavTop: mostrare SupportButton per qualsiasi diritto di supporto (agente o membro) - SupportButton: cancello ogni elemento a discesa a destra — creare / visua...
Aggiungere diritti di sostegno ai richiedenti (133-136)
Aggiunge quattro nuovi diritti SUPPORT-scoped per i membri non esperti: - No, no. - CREATE SUPPORT TICKET (134) - REQUEST WEBINAR (135) - VIEW MY SCHEDULED WEBI...
Rimuovere i filtri delle colonne dalle schede membri e membri del team
Aggiungi il pulsante Sync Rights a SecurityRoleManager per gli org di alto livello
Pulsante è visibile solo quando l'organizzazione.hasParent è falso. Chiamate POST /api/security/roles/sync-rights poi ricarica la tabella dei ruoli.
Supporto / Impostazioni della porta per diritti, correzione copia della rete, caricamento sull'interruttore della scheda, divisore nav
- Scheda di rete: descrizione aggiornata per utilizzare l'etichetta dinamica del titolo - Scheda di supporto: fisso 404 cambiando href /help → /supporto; gated ...
Estrai RoleRightsSyncService e aggiungi endpoint di sincronizzazione
- RoleRightsSyncService: centralizza la logica di sincronizzazione dei diritti di ruolo sia per OrgRole E poi... tabelle; avvio e on-demand - DataLoader: delega...
Rendi i diritti di ruolo DTO enum-driven e aggiungi la sincronizzazione dei diritti del modello di sicurezza
- SecurityRoleDTO.daOrgRole(): enumerate tutta la RoleRight Digitare i valori con DB impostazioni come ricerca — nuovi diritti appaiono con NOT SPECIFIED automa...
Revertire il cattivo titolo deps e la scansione di storia che ha mostrato il nome dell'agente nel titolo
Consentire più finestre dei biglietti di supporto con la deduplica di ticketId
Aggiungi PATCH /membership-type endpoint per la promozione/demotion dei membri
Aggiungere aggiornamento nativoMemberType e garantireTeamMemberRow query a MemberRepository
Supporto chat UX — aggiornamenti di nomi, titoli, numero di notifica, datagrid
- TicketChat spara suVisitorNameChanged quando arriva l'evento NAME CHANGED WS - SupportoTicketWindow invia strumento:titolo con requestorName su carico e sul c...
Render eventi di sistema come testo amichevole nella chat di supporto dei visitatori
NAME CHANGED eventi di sistema non mostrano più JSON crudo nella bolla di chat; essi visualizzano come una pillola italica centrata ("Nome delle modifiche a {na...
Mostra AG Sovrapposizione di carico griglia invece di stato vuoto sulla pagina delle guide
Inizializzare lo stato di carico a true in modo che la griglia mostra "Loading lead..." fino a quando la prima fetch completa, impedendo un flash di "Nessuna pi...
Utilizzare getOrganizationByIdWithFeatures in AppAvailability Intercettatore
Resolves LazyInitializationException on /api/security/leads e tutti altri percorsi CRM/POS-gated. L'intercettatore ha chiamato org.getFeatures() dopo la transaz...
Aggiungi findByIdWithFeatures per caricare con impazienza Organization.features
JOIN FETCH previene LazyInitializationException quando le caratteristiche sono accesso al di fuori di una transazione (ad esempio in AppAvailabilityInterceptor)...
Mostra città e suddivisione in ticket visitatori geo fila
Visualizzazione come "Città, Regione, Paese (IP)" — nulli sono filtrati in modo che degrades con grazia quando solo i dati di paese è disponibile
Esporre città e suddivisione in ricerca di geo visitatori
- Estendere il record GeoResult con i campi della città e della suddivisione - Switch SupportTicketService.toDTO() per utilizzare GeoLookupService (livello IP) ...
Aggiungi visitatoreCittà e visitatoreSubdivisione per SupportTicketDTO
Aggiungi i param dell'URL della scheda alla pagina /account per il collegamento profondo e la persistenza di aggiornamento
Lo stato del tab è ora sincronizzato con i link. a schede specifiche funzionano e la scheda corretta rimane selezionata in aggiornamento pagina.
Costruire errore in GeoLookupService e aggiungere NATS pubblicare per messaggi di agente
- Risolvere il tipo facoltativo contro l'elenco disinfettante in ***********************************************************************************************...
Correct message sides in history and handle visitor name change events
- Use messageType=VISITOR_MESSAGE from API to determine left/right in history load - Add NAME_CHANGED system event rendering in SystemMessage and TicketChat
Real-time chat delivery, message sides, notifications, and name sync
- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...
******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Hibernate TYPE(m) =:type restituisce 0 risultati quando legati alla base Classe di membro in eredità JOINED. Per tipo MEMBER, prendere tutto e filtro con!(m ist...
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.