Photo of a person in a library

Simplenews y el Reglamento General de Protección de Datos de la UE

Hemos desarrollado un nuevo modulo para integrar los requerimientos del RGPD con el modulo Simplenews de Drupal para hacer las suscripciones de Simplenews cumplir con el RGPD. En esta entrada explico algunos de los logros hasta ahora - y algunos de los retos que todavía quedan de resolver...

Aunque el Reglamento General de Protección de Datos de la Unión Europea (RGPD – más información en https://ec.europa.eu/info/law/law-topic/data-protection_es) fue aprobado ya el 27 de abril de 2016 [1], parece que la comunidad de Drupal no se dio cuenta (incluso nosotrxs) hasta abril de 2018, con el reglamento entrando en vigor el 25 de mayo de 2018. No sorprende que hemos estado un poco ocupadxs desde entonces.

Algunos de los cambios claves del reglamento son:

  • El consentimiento al procesamiento de datos tiene que ser dado de forma explicita, y el propósito para que se usan los datos tiene que ser expresado claramente.
  • Tienes que ser capaz de mostrar que una persona ha dado su consentimiento y a que esa persona ha consentido.
  • Cada persona tiene el derecho a acceder a los datos almacenados de ella, y esto significa que tienes que ser capaz de proveer una copia de los datos a la persona.
  • El reglamento también establece el "derecho al olvido", y tienes que ser capaz a eliminar todos los datos de una persona.

Existen requerimientos adicionales en el caso de la filtración de datos y en relación con privacidad como parte del diseño.

Este reglamento tiene algún impacto sobre casi cualquier sitio web, por ejemplo las cuentas de usuarixs (nombres de cuentas y correos electrónicos son datos personales), o – el tema de este blog – los datos de personas suscritas a boletines.

En el caso de Drupal, el desarrollo de un modulo que facilita el cumplimiento del RGPD empezó en enero de 2017 (https://www.drupal.org/project/gdpr). El modulo GDPR – en su versión para Drupal – incluye varios componentes que ayudan a desarrolladorxs web cumplir con el RGPD:

  • Un modulo GDPR lista de chequeo, que asiste a desarrolladorxs web cumplir con el RGPD (pero no lo hace para ti).
  • Un module GDPR Consent, que ayuda a gestionar consentimientos basados en cuentas de usuarixs y acuerdos de consentimiento.
  • Ordenes de Drush para anonimizar datos en el momento de la exportación de la base de datos.

Otros sub-modulos están en planificación, como por ejemplo GDPR Tareas.

Mientras este modulo provee algunas herramientas y una infraestructura para el cumplimiento del RGPD, en realidad su enfoque es en los cuentas de usuarixs de Drupal.

Como utilizamos Simplenews en muchos sitios web que hemos desarrollado empezamos a pensar sobre el problema cuando una persona abrió un issue sobre el cumplimiento del RGPD para Simplenews en drupal.org (un issue similar existe para Mailchimp, que también se utiliza mucho, pero Mailchimp no almacena los datos de suscripciones en la base de datos de Drupal, y por eso necesita otra solución).

Cuando empezamos a investigar como resolver los requerimientos del RGPD para las suscripciones de Simplenews pensamos que el modulo GDPR puede formar una base solida, permitiéndonos utilizar las funciones existentes proveídos por el modulo. Las funcionalidades que nos interesan son:

  • El gestión de acuerdos de consentimiento.
  • La infraestructura de ConsentResolver (que en la actualidad en el modulo GDPR Consent se limitar a usuarixs de Drupal)

Como un primer paso implementamos un ConsentUserResolver para la entidad simplenews_subscriber. Eso fue bastante sencillo, pero tiene una limitación importante: solamente puedes utilizarlo cuando todas las suscripciones a Simplenews son de usuarixs de Drupal, que, en la mayoría de los casos, no es así.

Significó más trabajo. La buena noticia es que todas las suscripciones de Simplenews son entidades de Drupal, como también son las cuentas de usuarixs. Entonces adaptamos el código del ConsentUserResolver (un plugin manager, plugin, field, widget, etc) para crear un ConsentSubscriberResolver que permite seguir a los acuerdos (y a las revisiones de acuerdos) a los que una persona ha consentido.

Tuvimos que resolver algunos problemas en el camino. Por ejemplo, cuando una persona rellena el formulario de suscripción, la entidad de suscripción todavía no existe. Se crea mas tarde y se actualiza cuando se confirma una suscripción. En la implementación actual actualizamos la entidad de la suscripción en el momento de la confirmación de la suscripción y la relacionamos con el acuerdo. Tambien significa que no tenemos acuerdos para suscripciones que nunca se confirman (suscripciones de bots), que probablemente es algo bueno.

En la actualidad el trabajo es disponible como un proyecto de Sandbox en https://www.drupal.org/sandbox/andreasspeck/2973749. El objetivo es incluir el modulo como submodulo en Simplenews, pero todavía falta mucho trabajo para que esto se puede hacer, como por ejemplo añadir unit tests.

1. REGLAMENTO (UE) 2016/679 DEL PARLAMENTO EUROPEO Y DEL CONSEJO de 27 de abril de 2016 relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos y por el que se deroga la Directiva 95/46/CE (Reglamento general de protección de datos) https://eur-lex.europa.eu/legal-content/ES/TXT/HTML/?uri=CELEX:32016R0679&from=ES