Skip to content

Implementar mecanismo de aceite de EULA (router guard + modal) #91

Description

@rafaumeu

Contexto

O web app (PWA) precisa de um mecanismo de aceite de EULA para cobrir o uso via browser. O app Electron ja tem a spec completa em pianolouvorja/app/.planning/eula/ — esta issue e o equivalente para o web.

Comportamento esperado

  1. Primeira visita: Usuario ve modal/tela de EULA antes de qualquer interacao
  2. Aceite: Grava flag no localStorage (eula_accepted_v1) e libera o app
  3. Recusa: Redireciona para pagina de saida / fecha modal
  4. Versao atualizada: Quando EULA_VERSION muda, re-exibe o EULA
  5. Ja aceito: Nao exibe novamente (ate mudar a versao)

Implementacao sugerida

Vue Router guard

// src/router/index.ts
router.beforeEach((to) => {
  const eulaAccepted = localStorage.getItem('eula_accepted_v1')
  if (!eulaAccepted && to.name !== 'eula') {
    return { name: 'eula' }
  }
})

Rota /eula

  • Tela full-screen com texto do EULA
  • Botao "Aceitar" → localStorage.setItem('eula_accepted_v1', EULA_VERSION) → redireciona para home
  • Botao "Recusar" → mensagem de saida

Versionamento

  • Constante EULA_VERSION = '1.0' no router ou store
  • Comparar com valor gravado no localStorage
  • Se diferente, re-exibir EULA

Referencia

Tasks

  • Criar rota /eula com texto completo do EULA
  • Implementar router guard (beforeEach)
  • Criar componente de modal/tela de EULA
  • Adicionar EULA_VERSION constante
  • Testes unitarios do guard
  • Sincronizar texto do EULA com docs/LEGAL/EULA.md do app

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions