You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Atualmente, no upload de imagens para documentos (cabeçalho e rodapé), a validação precisa garantir estritamente os formatos homologados para processamento em PDF (Dompdf) e DOCX (PHPWord), evitando formatos não suportados ou problemáticos (como .gif, .bmp, .svg).
Esta issue tem como objetivo restringir formalmente os uploads de imagens para os formatos: .jpg, .jpeg, .png e .webp.
🎯 Especificação em Formato Gherkin (BDD)
Funcionalidade: Validação e Restrição de Formatos de Imagens em Documentos
Como usuário do sistema Quero anexar imagens nos cabeçalhos e rodapés dos documentos apenas em formatos homologados (.jpg, .jpeg, .png, .webp) Para que a renderização e download dos documentos em PDF e DOCX ocorram sem erros ou falhas de layout.
Cenário 1: Upload com sucesso de imagem em formato permitido
Cenário: Upload de imagem com extensão e formato suportadosDado que o usuário está na tela de criação ou edição de um documento
Quando o usuário seleciona uma imagem com extensão "<extensao>" e MIME type válido
E solicita o salvamento do documento
Então o sistema deve aceitar o arquivo
E armazenar a imagem no storage público de documentos
E vincular a imagem ao documento com sucesso
Exemplos:
| extensao | | .jpg | | .jpeg | | .png | | .webp |
Cenário 2: Rejeição de imagem com formato não permitido
Cenário: Tentativa de upload com extensão ou MIME type não suportadoDado que o usuário está na tela de criação ou edição de um documento
Quando o usuário seleciona um arquivo de imagem com extensão "<extensao_invalida>" (ex: .gif, .bmp, .svg, .tiff)
E solicita o salvamento do documento
Então o sistema deve recusar o upload
E retornar um erro de validação informando que apenas imagens nos formatos .jpg, .jpeg, .png e .webp são permitidas
E nenhuma imagem deve ser gravada no storage
Cenário 3: Restrição no seletor de arquivos do frontend
Cenário: Restrição de tipos de arquivos no seletor de arquivosDado que o usuário abre o diálogo de criação/edição de documentos
Quando o componente de upload de imagem é renderizado
Então o campo de seleção de arquivo deve restringir o atributo "accept" para "image/jpeg,image/png,image/webp,.jpg,.jpeg,.png,.webp"
📋 Critérios de Aceitação
Backend (Web & API):
Validação de upload no ProjectController::createDocument configurada explicitamente para mimes:jpeg,jpg,png,webp e mimetypes:image/jpeg,image/png,image/webp.
Validação de path no DocumentStoreRequest e DocumentUpdateRequest restrita a \.(?:jpe?g|png|webp)\z.
Frontend:
Componente de upload de imagem (HandleDocumentsDialog.vue / inputs de imagem) configurado com accept="image/jpeg,image/png,image/webp,.jpg,.jpeg,.png,.webp".
Exibição de mensagens de erro amigáveis ao usuário caso um formato inválido seja selecionado.
Testes Automatizados:
Testes de Feature validando que uploads de .jpg, .jpeg, .png e .webp são aceitos com sucesso.
Testes de Feature validando que uploads de formatos não homologados (ex: .gif, .svg, .bmp, .pdf) são rejeitados com status HTTP 422 Unprocessable Entity.
📌 Contexto
Atualmente, no upload de imagens para documentos (cabeçalho e rodapé), a validação precisa garantir estritamente os formatos homologados para processamento em PDF (Dompdf) e DOCX (PHPWord), evitando formatos não suportados ou problemáticos (como
.gif,.bmp,.svg).Esta issue tem como objetivo restringir formalmente os uploads de imagens para os formatos:
.jpg,.jpeg,.pnge.webp.🎯 Especificação em Formato Gherkin (BDD)
Funcionalidade: Validação e Restrição de Formatos de Imagens em Documentos
Como usuário do sistema
Quero anexar imagens nos cabeçalhos e rodapés dos documentos apenas em formatos homologados (
.jpg,.jpeg,.png,.webp)Para que a renderização e download dos documentos em PDF e DOCX ocorram sem erros ou falhas de layout.
Cenário 1: Upload com sucesso de imagem em formato permitido
Cenário 2: Rejeição de imagem com formato não permitido
Cenário 3: Restrição no seletor de arquivos do frontend
📋 Critérios de Aceitação
ProjectController::createDocumentconfigurada explicitamente paramimes:jpeg,jpg,png,webpemimetypes:image/jpeg,image/png,image/webp.DocumentStoreRequesteDocumentUpdateRequestrestrita a\.(?:jpe?g|png|webp)\z.HandleDocumentsDialog.vue/ inputs de imagem) configurado comaccept="image/jpeg,image/png,image/webp,.jpg,.jpeg,.png,.webp"..jpg,.jpeg,.pnge.webpsão aceitos com sucesso..gif,.svg,.bmp,.pdf) são rejeitados com status HTTP422 Unprocessable Entity.