Skip to content

4. Usuarios

Rafael López Torres edited this page Dec 27, 2017 · 13 revisions

Simple data store maneja la entidad usuario (appUser), para realizar la función de autenticación y autorización. Esta entidad representa a cualquier sistema (persona física o máquina) que requiera hacer uso de la API.

La información que incluye un usuario viene definida por el siguiente JSON:

{
  `"login": "cadena identificador del usuario. No puede ser vacía ni nula",`
  `"password":"contraseña del usuario. No puede ser nula ni vacía",`
  `"Role": "Role del usuario: USER, DATA_MANAGER o STORE_ADMIN",`
  `"GrantedResources": [{
        "resourdeId": "5a3d21f499b0c80ebc14db10",
        "accessGrantedType": "READ"
      }, {
        "resourdeId": "5a3d21f499b0c80ebc14db10",
        "accessGrantedType": "WRITE"
      }]
}

La información del usuario es almacenada en la base de datos, y será accesible a través de la API de Usuarios.

ROLES

Existen 3 roles:

  • USER: Usuarios con permiso para consultar la información almacenada
  • DATA_MANAGER: Usuarios con permiso para consultar, añadir y modificar información
  • STORE_ADMIN: Usuarios con permiso para consultar, añadir y modificar información y usuarios.

API

Se puede acceder a la documentación completa en la url http://localhost:8080/swagger-ui.html del propio despliegue.

Para poder acceder a los recursos ofrecidos para usuario se debe estar autenticado con el ROL necesario. A continuación se detalla la API disponible para Usuarios.


GET /appUsers

Obtiene, de manera paginada, todos los usuarios existentes en el sistema.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN o DATA_MANAGER 200 Página page, size, sort spring page and sorting

Ejemplo de respuesta:

{
  "content": [{
    "login": "sUSER",
    "password": "",
    "role": "USER",
    "grantedResources": [{
      "resourdeId": "5a3d21f499b0c80ebc14db10",
      "accessGrantedType": "READ"
    }, {
      "resourdeId": "5a3d21f499b0c80ebc14db10",
      "accessGrantedType": "WRITE"
    }]
  }, {
    "login": "sAdmin",
    "password": "",
    "role": "STORE_ADMIN",
    "grantedResources": []
  }],
  "last": true,
  "totalPages": 1,
  "totalElements": 2,
  "sort": null,
  "first": true,
  "numberOfElements": 2,
  "size": 20,
  "number": 0
}

GET /appUsers/{id}

Obtiene la información del usuario indicando por id

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN o DATA_MANAGER 200 (usuario) id: login de usuario

Ejemplo de respuesta:

{
  "login": "sUSER",
  "password": "",
  "role": "USER",
  "grantedResources": [{
    "resourdeId": "5a3d21f499b0c80ebc14db10",
    "accessGrantedType": "READ"
  }, {
    "resourdeId": "5a3d21f499b0c80ebc14db10",
    "accessGrantedType": "WRITE"
  }]
}

POST /appUsers

Crea un nuevo usuario, indicado en el body.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN 201 (Usuario) no

Ejemplo de body:

{
  "login": "nuevo-usuario",
  "password": "contraseña",
  "role": "USER",
  "grantedResources": []
}

Ejemplo de respuesta:

{
  "login": "sUSER",
  "password": "",
  "role": "USER",
  "grantedResources": [{
    "resourdeId": "5a3d21f499b0c80ebc14db10",
    "accessGrantedType": "READ"
  }, {
    "resourdeId": "5a3d21f499b0c80ebc14db10",
    "accessGrantedType": "WRITE"
  }]
}

DELETE /appUsers/{id}

Elimina un usuario.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN 204 id: login del usuario

PUT /appUsers/{id}/granted-resource

Otorga permiso de acceso a un recurso para el usuario indicado

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN 202 (Usuario) id: login del usuario

Ejemplo de body:

{
  "accessGrantedType": "READ",
  "resourdeId": "id-recurso"
}

Ejemplo de respuesta:

{
  "login": "sUSER",
  "password": "",
  "role": "USER",
  "grantedResources": [{
    "resourdeId": "id-recurso",
    "accessGrantedType": "READ"
  }]
}

DELETE /appUsers/{id}/granted-resource/{resourceId}

Elimina los permisos de acceso al recurso para el usuario indicado.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN 202 (Usuario) id: login del usuario
resourceId: id del recurso

Ejemplo de respuesta:

{
  "login": "sUSER",
  "password": "",
  "role": "USER",
  "grantedResources": []
}