pavel-kalmykov / mantecabox

Servicio de almacenamiento de ficheros seguro en la nube para la asignatura de Seguridad en el Diseño de Software
GNU General Public License v3.0
2 stars 1 forks source link

Modelo de usuario securizado #4

Closed pavel-kalmykov closed 6 years ago

pavel-kalmykov commented 6 years ago

Descripcion

La primera entidad básica de nuestro sistema será la de usuarios, pues será una forma de ofrecer una experiencia personalizada 1:1 del mismo. Deberemos de, al menos inicialmente, poder tener un CRUD (o, mejor dicho, BREAD) de esta entidad.

Como primera aproximación, el usuario simplemente tendrá un nombre de usuario y una contraseña; sin embargo, la tabla representará esta información de forma que la contraseña estará hasheada.

image

Importante: en la entidad, los tamaños de las cadenas son restricciones de cara al usuario; los strings en Go no tienen limitaciones; en la base de datos sí.

Tanto esta tabla como todas las que se creen deberán de proveer de timestamps (created_at, updated_at) y de soft-deletes (deleted_at).

Todos los campos son requeridos (NOT NULL).

Condiciones a satisfacer

  1. Deberemos de tener el esquema de la base de datos creado a través de una migración (tanto para crearla como para revertirla).
  2. Deberemos de implementar el acceso a los usuarios haciendo uso uso del patrón DAO con las funciones de obtener todos, obtener uno, añadir, editar y borrar.
  3. Cuando se realice una acción de escritura en un registro, se escribirá la fecha de la operación en el timestamp que corresponda (created_at para cuando se cree, updated_at cuando se modifique y deleted_at cuando se borre).
  4. Los usuarios no se borran; se les introduce el timestamp de deleted_at y dejan de mostrarse en las operaciones de obtener todos y obtener uno.

De momento no es necesario implementar ninguna securización; se hará más adelante.

Referencias

pavel-kalmykov commented 6 years ago

Desarrollando en modelo-usuario