Liferay – ¿Cómo adaptarse a la normativa de cookies?


En este artículo hablaremos sobre cómo se deben adaptar las aplicaciones web para cumplir la actual normativa de cookies. Concretamente explicaremos cómo lo hemos hecho en un portal desarrollado con Liferay.

Para empezar, existen dos maneras de cumplir la ley. Estas van en función del tipo de cookies que utilicemos y el uso que hagamos de ellas:

1.     Si tus cookies son propias  y mientras se mantenga el anonimato de los usuarios, lo único que hace falta es informar de ello a través del aviso legal o de la política de privacidad de tu sitio. Lo más habitual es mostrar un mensaje con el enlace a la pestaña de aviso legal.

2.     Si por el contrario utilizas cookies de tercero, o usas cookies propias pero identificas al usuario, entonces necesitas el consentimiento explícito del usuario. Tienes que avisar que tu sitio utiliza cookies y tus usuarios son los que tienen que dar permiso para que las utilices. No las puedes crear sin su consentimiento.

En el segundo caso, si quisiéramos cargar cookies de terceros en un portal de Liferay tendríamos que:

Paso 1: Mostrar un mensaje diciendo que el sitio utiliza cookies de terceros. En este mensaje se muestra un enlace al aviso legal y un botón para que el usuario pueda aceptar nuestra política.

<div class="alert alert-warning fade in" style="display: none; margin-bottom: 0px;">   <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>   <@liferay.language key="frase-popup-aviso-legal" />   <a href="<@liferay.language key='aviso-legal-url' />">  // Enlace al aviso legal       <strong><@liferay.language key="avis-legal" /></strong>   </a>              <button id="accept-cookies" type="button" class="btn">  // Botón de aceptación       <@liferay.language key='accept-cookies-policy'/>   </button></div>

Paso 2: Para que este mensaje sólo salga cuando no se ha aceptado la política se ha de crear una cookie propia, en este caso show_msg_cookies, que indique si ésta se ha aceptado previamente o no. 

var cookie_key = "show_msg_cookies";if (existsCookie(cookie_key)) {   // Si ya habíamos aceptado la política de cookies    $("#accept-cookies").click(); // Cargamos directamente las cookies}else $('.alert').attr("style", "margin-bottom: 0px;"); // Sino mostramos el mensaje // Función auxiliar que comprueba que una determinada cookie existafunction existsCookie(cname) {    var name = cname + "=";    var ca = document.cookie.split(';');    for(var i = 0; i < ca.length; i++) {                var c = ca[i].trim();        if (c.indexOf(name) == 0) return true;    }    return false;}// Aquí se define las acciones a realizar a la hora de aceptar la política$("#accept-cookies").click(function() {   document.cookie = cookie_key + "=false;path=/"; // Creamos una cookie propia paramarcar que el usuario ha aceptado la política   $('.alert').attr("style", "display:none; margin-bottom:0px;"); // Se oculta el mensaje   loadCookies(); // Ya podemos cargar la cookies});

Paso 3: Además, en muchos casos es habitual indicar en el mensaje de aviso que “si el usuario sigue navegando por la aplicación se sobreentiende que acepta la política de cookies”. Normalmente cuando se indica esto, se pone un temporizador que carga las cookies al X tiempo de estar navegando. A continuación se muestra cómo se modificaría el código anterior añadiendo un temporizador de un minuto.

var cookie_key = "show_msg_cookies";if (existsCookie(cookie_key)) {   // Si ya habíamos aceptado la política de cookies    $("#accept-cookies").click(); // Cargamos directamente las cookies}else {    $('.alert').attr("style", "margin-bottom: 0px;"); // Sino mostramos el mensaje    // Si pasamos el tiempo de espera cargamos las cookies igualmente    setTimeout(function(){        $("#accept-cookies").click();    }, 60000);}

Comentario: En el caso de Liferay, para que este mensaje salga en todas las páginas (no únicamente en la home) se ha de hacer en el theme. Concretamente en el fichero portal_normal.ftl en el cuál se define el <head> y el <body> de todas las páginas del portal.


Leave a Reply

Your email address will not be published. Required fields are marked *