EthicApp-Development / ethicapp-main

EthicApp's main repository containing backend and frontend applications
MIT License
1 stars 1 forks source link

[ethicapp-v2] Agregar validación básica de ID nacional / RUT #91

Open ifgarces opened 1 year ago

ifgarces commented 1 year ago

Descripción general

Luego o mientras se aborda #65, el equivalente a user.rut debe ser único para cada usuario, o mejor dicho, debe investigarse si para el caso internacional, dada la diferencia de formatos de los national IDs, debiera ser único este atributo. En cuyo caso, agregar simple validación de ID nacional único (no confundir con user.id que es la única clave primaria de user).

Analizar la posibilidad para, en casos chilenos, aplicar verificación sencilla del formato de RUT.

¿Por qué es necesario?

Para que la columna RUT tenga sentido, debe ser único para cada usuario y al menos debe validarse que tenga el formato de RUT/RUN. Esto, por supuesto, en un contexto de producción.

Información adicional

En la base de datos de producción (o al menos, en un dump relativamente reciente) se encontraron varios usuarios con RUTs de prueba o inválido (repetido entre varios usuarios). Al implementar esto, debe considerarse gestionar apropiadamente esas filas para que cumplan con la validación, lo cual puede considerarse riesgoso si es que, en algún punto del código, se considera user.rut como clave primaria para encontrar algún usuario (lo cual es altamente incorrecto). Requiere de inspección de código back y front.

claudio-alvarez commented 1 year ago

Los datos de DNI/RUT/ID son útiles para la eventualidad de cruzar datos de Ethicapp con datos de investigación obtenidos por otras fuentes, p.ej., cuestionario en papel (se usan formularios de respuesta con círculos rellenos - se leen con OCR), o cuestionario en SurveyMonkey, Google Forms, etc.

También en la eventualidad de integrar EthicApp con un LMS, como Canvas, es buena idea que esté la información de RUT/DNI/ID.

En principio, yo optaría por una validación muy elemental del campo, es decir, que sea no vacío. Incluso, se podría incorporar un campo de confirmación (al estilo correo electrónico) para asegurar que el RUT/DNI/ID esté bien ingresado.