2019-07-03 19:57:16 +00:00
|
|
|
# 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.
|
|
|
|
|
|
|
|
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).
|
2019-07-03 22:04:50 +00:00
|
|
|
|
|
|
|
## 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. En Rails esto se
|
|
|
|
llama "tiene y pertenece a muchos" (HABTM en inglés).
|
|
|
|
|
|
|
|
Sin embargo también queremos saber qué rol tienen, con lo que
|
|
|
|
necesitamos dos tablas de HABTM, una de Invitades y otra de Usuaries.
|
|
|
|
De lo contrario necesitamos establecer roles y ya entramos en las
|
|
|
|
dificultades que decíamos más arriba.
|
|
|
|
|
|
|
|
No podemos saber desde cuándo se creo la relación, a menos que tengamos
|
2019-07-04 16:23:43 +00:00
|
|
|
una tabla de actividades por separado.
|
|
|
|
|
|
|
|
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).
|
2019-07-05 23:55:59 +00:00
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
Si ya están logueades, se acepta la invitación inmediatamente.
|
|
|
|
|
|
|
|
### 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.
|