interlegis / sapl

Sistema de Apoio ao Processo Legislativo
GNU General Public License v3.0
83 stars 82 forks source link

Urna para votação eletrônica presencial (via tablet) #3504

Open eduard0-moraes opened 2 years ago

eduard0-moraes commented 2 years ago

Estou procurando informações se alguém já usou o painel de votação em um tablet compartilhado, no qual cada vereador clica no seu usuário, digita sua senha e vota.

Sei que este setor é para questionamentos técnicos, operacionais e não para buscar informações, por isto eu pergunto:

  1. Há como o vereador efetuar login no SAPL via API?
  2. Há como o vereador votar na matéria em aberto via API?

Penso em desenvolver um app no qual seria uma urna eletrônico, e posso disponibilizar para nossa comunidade.

Obrigado por existem e por essa ferramenta tão incrível.

hermesalvesbr commented 2 years ago

Isso seria bem interessante, pena que não sei se a API tem isso.

alan-cleveston commented 2 years ago

Essa funcionalidade seria muito boa, além de ser bem importante.

LeandroJatai commented 2 years ago

O login via API ainda não foi implementado... mas está muito próximo disso... algo em torno de 4hs de programação, no máximo... seria via token e/ou via jwt.

LeandroJatai commented 2 years ago

O Login via Token já funciona mas ainda não está em nenhuma versão oficial: quando gerar uma nova versão será possível utilizá-lo:

**Login:**
$ http post http://localhost:8000/api/auth/token username=admin password=admin

resposta será:
HTTP/1.1 200 OK
Allow: POST, OPTIONS
Content-Language: pt-br
Content-Length: 52
Content-Type: application/json
Date: Mon, 07 Mar 2022 18:26:11 GMT
Server: WSGIServer/0.2 CPython/3.6.9
Vary: Accept-Language, Cookie
X-Frame-Options: ALLOWALL

{
    "token": "2fc1033631aad4e5d0891a5e31198c7724210022"
}

ps: o cliente acima utilizado foi o 'http', enviado via post com dois fields (username, password)... sua app terá o cliente apropriado, uma lib na linguagem da qual o app está sendo implementado.

depois disso é só guardar o token e enviar como header Authorization em toda requisição que exija autenticação:

exemplo:
$ curl -X GET http://localhost:8000/api/protocoloadm/documentoadministrativo/ -H 'Authorization: Token 2fc1033631aad4e5d0891a5e31198c7724210022'
LeandroJatai commented 2 years ago

lembrando que Token é relativamente seguro se o sapl estiver rodando por baixo de um proxy HTTPS