5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-24 11:46:22 +00:00
panel/doc/autenticacion.md
2019-07-10 19:45:20 -03:00

80 lines
2.9 KiB
Markdown

# Autenticación de usuaries
Estamos pasando de un modelo integrado donde Usuarias son usuaries de
una red IMAP e Invitadxs son usuaries locales de la plataforma, a una
más "monolítica" donde las cuentas se gestionan desde la plataforma
misma.
Entonces, Usuaria e Invitadx se fusionan y su diferencia es solo de
privilegios sobre un sitio (puede hacer todo / solo puede cargar
artículos y modificar los propios).
No nos gusta la idea de implementar todo un sistema de privilegios,
primero porque queremos que Sutty sea una plataforma democrática y
segundo porque en nuestra experiencia nadie los usa y prefieren usar una
cuenta de administración para todo.
La migración a Devise nos va a permitir tener recuperación de
contraseñas, registro independiente, correos de bienvenida y varias
cosas más.
Planeamos que Sutty también sea un proveedor de oAuth, para poder
integrarla con otras plataformas comunitarias
(rocket.chat/mattermost.com principalmente).
## Base de datos
Los Sitios tienen una contraparte física, de archivos, pero también se
crean en la base de datos para establecer relaciones con Usuaries.
Une Usuarie puede tener muchos Sitios y viceversa.
También queremos saber qué rol tienen, con lo que tenemos una tabla de
roles que establece el rol que une usuarie tiene en un sitio. De lo
contrario necesitamos establecer roles y ya entramos en las dificultades
que decíamos más arriba.
Podemos saber quién es invitade ingresando a un sitio y fijándonos si
está en su lista de invitade. Lo mismo para usuaries.
Les usuaries pueden bloquear invitades y a otres usuaries y sumar
usuaries e invitades a su sitio (via correo de invitación).
## Invitaciones a sitios
### Enviar invitación
Desde la gestión del sitio se puede invitar a nueves usuaries e
invitades. Se les envía un correo (y cuando tengamos sistema de
notificaciones, una notificación) donde pueden confirmar su
participación.
Si no tienen cuenta, tienen que registrarse completando los datos en el
momento, sino se pueden loguear normalmente.
Para poder hacer una invitación con consentimiento, se guarda el rol
como temporal. Cuando la usuaria acepta la invitación el rol se vuelve
definitivo.
### Aceptar invitación
Al ingresar, le usuarie ve su listado de sitios y en la lista ve a
cuales está invitade. Usa el botón de aceptar invitación para poder
acceder al sitio. Si rechaza la invitación, el rol se elimina de la
base de datos.
Eventualmente queremos pasar a un modelo de estados del rol donde
podamos saber si fue rechazado, aceptado, etc.
### Invitades desde la web
Al publicar la URL de invitación, les invitades se puedan registrar
por su cuenta. Solo deben completar sus datos (correo y contraseña) y
reciben un correo de confirmación.
En la configuración del sitio hay que distinguir entre invitades por
invitación o por registro automático.
# Falta
Darle estilo a los mails