- config_form usava fields.csrfField() (inexistente no 11.0.4) -> erro fatal - token CSRF agora via csrf_token_value (PHP); URL usa textField - compatível com 11.0.0+ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.9 KiB
2.9 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.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), causandoMacro "csrfField" is not defined. Agora o token CSRF é emitido viacsrf_token_value(PHP), e o campo de URL usatextField— 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/logTimeenriquecidos 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.