Persista RoleRightType por stable getId() em vez de ordinal
Hibernate @EnumType.ORDINAL) escreve/leia o índice de declaração de o enum. Quando é removido um valor de Tipo de Rótulo (por exemplo, MANAGEM USERS, id=19), ca...
Evitar o envenenamento de transações DDL e endurecer corridas de multi-pod
A auto-cura anterior colocou DDL dentro de uma @Transactional syncAll(). Quando um ALTER QUADRO ADD CONSTRAINT disparado sobre uma restrição existente (caso nor...
Fazer RoleRightsSyncService totalmente auto-cura em cada inicialização
Adicionar ou remover um RoleRightType nunca mais precisa ser executado KamoInitializerService. syncAll() agora executa três fases em cada inicialização: 1. Res...
Deixar cair restrições de verificação em colunas padrão-role-rights enum
Hibernate auto-gerates CHECK (coluna IN ('VAL1', 'VAL2', ...)) na TABELA DE CRIAR para as colunas @EnumType.STRING, congelando o enum's lista de valores na hora...
Adicionar restrições únicas em falta para upserts role-right
**************************** + syncSecurityModelRoleRights use «ON CONFLICT (role id, right type) NÃO FAZER NADA» e `ON CONFLICT (default role id, right type) N...
Adicionar uma restrição única (role id, right type) no OrgRoleRight
Necessário para ON CONFLICT não fazer nada em **************** Sem esta restrição, a consulta de sincronização falha com "nenhum único ou exclusão restrição cor...
Remover chamadas getType () da OrganizaçãoController após a Organização Remoção de tipo
Remover a Organização Desactualizada Tipo enum
A enum está sendo aposentada — a identificação da organização proprietário da plataforma é agora impulsionada pela nova Organização. A bandeira é TopLevel, e os...
Adicionar configurações da administração da plataforma — subvenções do plano de org, eventos, catálogo do plano
- Novas páginas em /settings/platform (guardado por hasPlatformAdminAccess): - /organizações — listar cada org, subvenção/modificar/revogar planos COMP com razõ...
Adicionar PlatformAdmin controller + serviço para subsídios comp plano
- PlatformAdminController em /api/billing/platform (classe-nível @PlatformAdminOnly) - GET /orgs, GET /orgs/{orgld} - POST /orgs/{orgId}/grants, PATCH'DELETE /o...
Seed Organization.isTopLevel for kamocrm and ONDER UNIMITED self-comp plan
- DataLoader: drop Organization Digite arg de createOrg, set isTopLevel=true on kamocrm - KamoCRMAgeReqUpdateRunner + teste: correspondência em IS TOP LEVEL = V...
Pare de substituir o avatar de membro com o avatar de usuário logado na visualização de perfil
fetchAvatars fetched /api/security/avatars (sem escopo memberID — sempre retorna os avatars do usuário logado) e chamado setActiveAvatar, batendo o correto avat...
Adicionar tipos de eventos Organization.isTopLevel, PaymentMethod.COMP, COMP *; remove Organization Tipo enum
- Organização: substituir campo 'type' morto por 'isTopLevel' para identificação do proprietário da plataforma - PagamentoMétodo: adicionar COMP para subsídios ...
Também ocultar o botão de cancelamento da subscrição para os proprietários de orgs na página de rede
Adicionar rota de proxy da sincronização- direita em falta
POST /api/security/roles/sync-rights faltava um manipulador proxy Next.js, fazendo com que o botão Sync Rights nas configurações de funções de segurança sempre ...
Ocultar o botão de cancelamento da assinatura da org original do usuário na página de rede
Definir orgOriginal em registro e expor isOriginalOrg em minhas redes
Adicionar orgCampo original ao usuário para rastrear o registro org
Use PublicChatVisitor displayName para o solicitanteName nos tickets de visitante
Solicitador de código rígido de tickets iniciado pelo visitante para o membro do sistema org, então O DTO estava emergindo o nome do proprietário do org na colu...
Remover as chamadas de reset do filtro obsoleto após a remoção do filtro da coluna
Direitos de suporte para membros-requerentes e visualização de tickets em modo duplo
- NavTop: mostrar SuporteButton para qualquer direito de suporte (agente ou membro) - SuporteButton: gate cada item dropdown à direita - Criar / Ver tickets, Pe...
Adicionar direitos de apoio aos membros-requerentes (133-136)
Adiciona quatro novos direitos para membros não-agentes: - ******************* (133) - CREATE SUPPORT TICKET (134) - PEDIDO WEBINAR (135) - VER MY SCHEDULED WEB...
Remover filtros de colunas das páginas de membros e membros da equipe
Adicionar botão Sync Rights ao SecurityRoleManager para orgs de nível superior
O botão só é visível quando o organization.hasPaint é falso. Chamadas POST /api/security/roles/sync-rights então recarrega a tabela de papéis.
Suporte do Gate/Configurações por direitos, corrigir cópia da rede, carregar no interruptor de tabulação, divisor de navegação
- Cartão de rede: descrição atualizada para usar o título de ramo dinâmico - Cartão de suporte: fixo 404 alterando href /help → /suporte; fechado por isSupport ...
Extrair RoleRightsSyncService e adicionar o endpoint sync-rights
- RoleRightsSyncService: centraliza a lógica de sincronização de direitos de papel para ambos OrgRole E... tabelas; inicialização e sob demanda - DataLoader: de...
Fazer direitos de papel DTOs enum-driven e adicionar direitos de modelo de segurança sincronizar
- SecurityRoleDTO.fromOrgRole(): enumerar todos os RoleRight Tipo de valores com DB configurações como pesquisa — novos direitos aparecem com NOT SPECIFIED auto...
Reverter os deps de título defeituoso e a verificação do histórico que mostrou o nome do agente no título
Suporte ao título do chat nulo, alteração de nome propagação do histórico
Permitir várias janelas de ticket de suporte com deduplicação ticketId
Adicione o chip do tipo de membro e promova/demote ao cartão de status de membro, remova o campo de tempo de sessão
Adicionar PATCH /membership-type endpoint para promoção/demoção de membros
Adicione a atualização nativaMemberType e assegure as consultas do MemberRow ao MemberRepository
Suporte ao chat UX — atualizações de nomes, títulos, contagem de notificações, datagrid
- TicketChat dispara noVisitorNameChanged quando o evento NAME CHANGED WS chega - SupportTicketWindow despachos tool:title with requestorName on load and na alt...
Renderizar eventos de sistema como texto amigável no chat de suporte ao visitante
Eventos do sistema NAME CHANGED não mostram mais JSON bruto na bolha de bate-papo; eles exibem como uma pílula italic centrada ("Mude o nome para {nome}"). Outr...
Mostrar a sobreposição da grade AG em vez de estado vazio na página de leads
Inicializar o estado de carregamento para true para que a grade mostre "Carregando leads..." até que a primeira busca completa, impedindo um flash de "Nenhum le...
Promover o POS e o ESIG desde a PLANEAMENTO até à fase completa
Use getOrganizaçãoByIdWithCaracterísticas no AppDisponível Interceptador
Resolve Initialização PreguiçosaExcepção em /api/security/leades e tudo Outras vias de CRM/POS. O interceptor chamado org.getFeatures() após o fechamento da tra...
Adicionar findByIdWithCaracterísticas para carregar ansiosamente Organization.features
AJIR FETCH previne o LazyInitializationException quando os recursos são Acessado fora de uma transação (por exemplo, no AppAvailabilityInterceptor).
Mostrar cidade e subdivisão na linha geo do visitante do bilhete
Exibe como "Cidade, Região, País (IP)" — nulos são filtrados por isso degrada-se graciosamente quando apenas os dados do país estão disponíveis
Expor cidade e subdivisão no geo de visitantes
- Estender o registro GeoResult com cidades e campos de subdivisão - Switch SupportTicketService.toDTO() para usar o GeoLookupService (nível IP) pesquisa) em ve...
Adicionar visitanteCidade e visitanteSubdivisão ao SuporteTicketDTO
Adicionar parâmetros de URL da aba / página de conta para a persistência profunda de ligação e atualização
O estado da tabulação está agora sincronizado com o estado da tabulação. para as abas específicas funcionam e a aba correta permanece selecionada na atualização...
Erro de compilação no GeoLookupService e adicionar NATS publicar para mensagens de agente
- Corrigir o tipo opcional vs lista de descompasso em ********************** - Injectar NatsMessageService no MediaController - Publique no chat.session.{guid} ...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.