mirror of https://github.com/interlegis/sapl.git
Browse Source
* Corrige polling excessivo em /voto-individual/ - Adiciona @login_required em votante_view para que usuários anônimos sejam redirecionados ao login em vez de receberem o template com auto-reload. - Corrige bug do relógio: setInterval recursivo dentro de startTime() acumulava timers exponencialmente. Trocado por setTimeout, mantendo apenas um timer pendente. - Move o script de reload/relógio para dentro do bloco {% if not error_message %} para que a variante de erro não agende reloads de 30s. Reduz drasticamente o volume de requisições que disparavam o rate limiter (RATE_LIMITER_RATE=35/m) quando vários parlamentares mantinham a tela aberta atrás do mesmo IP NAT. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Bloqueia /voto-individual/ para usuários sem Votante/can_vote Antes, usuários autenticados sem registro de Votante ou sem a permissão parlamentares.can_vote recebiam HTTP 200 com um template de erro (e, antes do commit anterior, ainda traziam o JS de auto- reload). Agora a view exige as duas condições no início e retorna HTTP 403 caso falhe: - @permission_required('parlamentares.can_vote', raise_exception=True) garante a permissão (com raise_exception para 403 ao invés do redirect padrão pra LOGIN_URL). - Checagem inline de Votante.objects.filter(user=...).exists() pega o caso de superusers (que passam pelo bypass automático de permissões do Django mas não têm cadastro de Votante) e de qualquer custom group que conceda can_vote sem o cadastro. Mantém HTTP 200 com mensagem amigável para falhas de estado que um votante legítimo pode encontrar (nenhuma matéria aberta, parlamentar não presente na sessão). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: joao <joao@mezzoplanejamento.com.br> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>3.1.x
committed by
GitHub
2 changed files with 23 additions and 36 deletions
Loading…
Reference in new issue