Versão 25

Melhorias

Admin

  • Os relatórios “Registros de login de usuário” e “Usuários habilitados” passam a permitir filtrar as informações apresentadas pela classe dos usuários. Os relatórios estão disponíveis em Admin > Segurança > Grupos, papés e usuários.

Engine

  • O método PermissionManager.prototype.fixInheritance passa a eliminar as eventuais permissões duplicadas que possam ter sido introduzidas por movimentações de diretórios e arquivos que não tenham sido realizadas pela classe VirtualFileSystem. Esse método também passa a reaproveitar as chaves dessas eventuais duplicações sempre que for possível.

Web Framework

  • Foi criado o evento afterCreateProcess na classe ProcessManager com o objetivo de permitir customizações aplicadas em todos os processos do sistema.
  • Foi criado o método Process.prototype.hasButton com o objetivo de identificar se um botão existe em um processo.

Defeitos corrigidos

Admin

  • O botão “Replicar nas classes filhas” do processo Admin > Segurança > Permissões > Permissões criava permissões duplicadas caso houvesse uma permissão em uma classe filha da replicada com o modo de aplicação “Classe e filhas” configurado.
  • Ao alterar a classe de um usuário no processo Admin > Segurança > Grupos, papéis e usuário > Usuários ocorria o erro “syntax error at or near ‘and’”.

Desenvolvimento

  • Em situações bem específicas, a atualização do sistema poderia não sincronizar registros da tabela Virtual File System.
  • O processo Desenvolvimento > Atualização > Atualizar Sistema era interrompido com o erro “Chave NNNNN não localizada no cache local” se houvesse uma permissão com herança para um grupo, papel ou usuário não existente na base destino. Agora o processo de atualização passa a ignorar essa inconsistência, pois ela pode estar sendo corrigida pelo próprio processo de atualização.
  • Os processos Sincronizar Permissões de Papéis e Atualizar Sistema não removiam as permissões órfãs da base destino geradas pela exclusão manual de classes e arquivos sem a utilização da classe VirtualFileSystem.
  • Os processos Atualizar Sistema e Remover produtos não licenciados não atualizavam as informações das bases origem e destino selecionadas pelo usuário, mesmo que ele retornasse para a tela inicial e selecionasse uma outra base de dados, exigindo que ele recarregasse o processo para que as informações corretas fossem exibidas.
  • Os processos Atualizar Sistema e Atualizar Engine poderiam criar registros na iLog com o campo iReferrer vazio, dificultando a rastreabilidade das alterações.
  • O processo Desenvolvimento > Produtos > Mover chaves entres produtos não deixava claro para quais produtos a senha mestre solicitada na tela inicial era aplicada. Agora ele passa a solicitar a senha apenas quando é necessário reativar o desenvolvimento dos produtos na base de dados corrente.

Engine

  • O método Security.prototype.getPermission passou a gerar o erro “Invalid key argument” caso fosse informada uma chave de classe inválida. Foi restaurado o comportamento anterior de tratar a classe inválida como null a fim de garantir a compatibilidade com códigos legados que fazem uso dessa API com valores potencialmente inválidos, como os obtidos a partir de uma importação de dados.
  • Os métodos VirtualFileSystem.prototype.moveFile e VirtualFileSystem.prototype.moveDirectory não verificavam se os arquivos e diretórios movidos relacionados a um produto (chave negativa) poderiam depender do produto associado ao diretório destino.
  • A IDE do Engine poderia criar permissões duplicadas se um arquivo fosse modificado logo após a sua criação.
  • Quando o módulo indicado pela propriedade controller de uma rota HTTP não exportava uma função, era gerado o erro “value is not a Function object” sem nenhuma informação adicional que permitisse o desenvolvedor compreender o motivo do erro. Agora o Engine passa a indicar o motivo do erro e o caminho do módulo controlador que retornou o valor inválido.
  • O roteador HTTP não detectava alterações nos códigos-fontes dos controladores HTTP, exigindo que o servidor fosse reiniciado ou que as sessões JavaScript fossem descartadas para que as alterações fossem consideradas.
  • Ocorria uma falha na carga da DLL do V8 em versões desatualizadas do Windows.
  • Quando ocorria um erro de estouro de memória no Heap do JavaScript, esse erro ocasionalmente gerava um erro de Access Violation no Engine.

Web Framework

  • A abertura do processo inicial do Web Framework falhava caso a senha do usuário estivesse expirada.
  • Os totais gerais de relatórios SimpleLayout com grupos colapsáveis, recurso habilitado pela propriedade SimpleLayout.prototype.groupExpansionLevel, poderiam não ser exibidos.
  • O campo chave da ajuda do processo estava sendo apresentado vazio.
  • Arquivos do tipo “application/x-layoutLink” haviam deixado de suportar comentários em seu conteúdo.
  • Em determinadas situações era registrado no console do navegador o erro “Uncaught TypeError: saved.shift is not a function”, sem maiores implicações para o usuário final.
  • O botão “Localizar” da grade não estava fechando a pesquisa quando esta estava aberta e era realizado um novo acionamento do botão.
  • Ao acionar a tecla “Esc” em uma grade era registrado no console do navegador o erro “Uncaught TypeError: Cannot read property ‘inputNodeId’ of null”, sem maiores implicações para o usuário final.
  • Ao alternar o modo de visão da grade para formulário e navegar pelos registros, em certas situações, ao retornar para o modo tabela, dois registros apresentavam-se selecionados.
  • Ao clicar em um botão de um processo poderia ocorrer o erro “Id x not found at DomMap.getObject(). Caller: Unknown.” caso uma mesma instância Label fosse escrita em mais de uma interação.
  • Os botões do Web Framework não funcionavam corretamente no navegador Microsoft Edge 14 ou inferior.