Redmine/CHANGELOG.md
Gemini ecf175728f fix: compat GLPI 11.0.4 — troca Toolbox::logError por logInFile (1.5.2)
Toolbox::logError não existe no 11.0.4 -> erro fatal ao criar issue/lançar
tempo/garantir membership. Usa Toolbox::logInFile('redmine', ...).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 14:58:52 -03:00

3.2 KiB

Changelog

Todas as mudanças relevantes deste plugin são documentadas aqui. O formato segue Keep a Changelog e o versionamento segue SemVer.

[1.5.2]

Corrigido

  • Compatibilidade com GLPI 11.0.4: Toolbox::logError() não existe nessa versão e causava erro fatal (undefined method logError) ao criar issue / lançar tempo / garantir membership. Substituído por Toolbox::logInFile('redmine', ...), disponível em todas as versões.

[1.5.1]

Corrigido

  • Compatibilidade com GLPI 11.0.4: o formulário de configuração usava o macro fields.csrfField() (só existe a partir de versões mais novas), causando Macro "csrfField" is not defined. Agora o token CSRF é emitido via csrf_token_value (PHP), e o campo de URL usa textField — compatível com 11.0.0+.

[1.5.0]

Adicionado

  • Kill switch de licença Mindtek / Mind Place (requisito do marketplace): o plugin só ativa e registra seus hooks se a licença for válida (\GlpiPlugin\Mindplace\License::isValid()). Sem Mind Place ou com licença inválida, o plugin é desativado por segurança, sem erros.

[1.4.0]

Adicionado

  • Vínculo Entidade GLPI → Projeto Redmine (1:1, match exato, sem herança de árvore), via aba Redmine em Administração → Entidades — para clientes de suporte recorrente cujos chamados nascem na entidade, sem projeto.
  • Documentação de API para desenvolvedores (docs/API.md).

Alterado

  • Resolução do projeto Redmine no hook passa a considerar, além do projeto vinculado, a entidade do chamado como fallback.
  • Templates do tab generalizados (owner_field/owner_id) para reuso entre Projeto e Entidade.

[1.3.0]

Adicionado

  • Mapeamento de usuários GLPI → Redmine (auto-match por e-mail + overrides manuais).
  • Autoria real de issues e lançamentos de tempo via impersonation (X-Redmine-Switch-User).
  • Inclusão automática do técnico como membro do projeto Redmine (papel configurável).
  • Observadores padrão configuráveis nas issues.

[1.2.0]

Adicionado

  • Formulário de configuração com valores padrão da issue (tracker, prioridade, atividade).
  • Mapa de status Chamado GLPI → Status Redmine.
  • Categoria padrão por vínculo de projeto.
  • "Sincronizar Metadados" passa a cachear trackers, status, prioridades, atividades e usuários.

Alterado

  • createIssue/logTime enriquecidos com os valores padrão.
  • Tempo só é enviado ao Redmine quando a tarefa é marcada como "Feito".

[1.1.0]

Adicionado

  • Tabela de mapeamento Chamado → Issue (uma issue por chamado) e Tarefa → lançamento de tempo.

Corrigido

  • Issue duplicada a cada salvamento de tarefa.
  • Dupla contagem de tempo em edições de tarefa.
  • Resolução do projeto Redmine pelo vínculo salvo (em vez de identificador adivinhado).
  • Vínculo direto chamado↔projeto lido da tabela correta do GLPI 11 (glpi_itils_projects).

Segurança

  • Chave de API criptografada em repouso (GLPIKey), com migração da chave existente.

[1.0.0]

Adicionado

  • Versão inicial: vínculo de projeto, configuração de URL/chave e criação básica de issues/tempo.