Cómo saber el usuario actual con Google Apps Script


 Cuando implementamos webs con Google Apps Script o en general cuando queremos comunicar javascript con Google Apps Script siempre podemos tener problemas en saber cual es el usuario real que está usando nuestro servicios.

Generalmente cuando distribuimos una web implementada con Google Apps Script lo hacemos con los permisos de ejecución del desarrollador. Es decir. la web accede a los datos a los que el desarrollador tiene permiso, y el usuario de la web  puede ver el html, pero no puede llegar a los documentos que hay detrás dado que el mismo no tiene permisos. Acostumbra a ser una muy buena manera de recolectar información de diferentes fuentes y poderlas  mostrar a los usuarios de una forma controlada y sin tener que dar permisos para nada a nadie.

Ahora bien, ¿Qué pasaría si necesitáramos saber cual es el usuario que accede a nuestra web? Imaginemos que la web ha de mostrar información diferente en función de que usuario se está conectando (una web con diferentes niveles de permisos, por ejemplo) . Google Apps Script nos permite saber sin lugar a dudas cual es el usuario que se conecta a nuestra web y con que usuario se está ejecutando la web, de forma que podremos mostrar información diferente sin ningún tipo de problemas.

Con este ejemplo veréis facilísimo cual es la diferencia entre usuarios conectados a una web:

function doGet()
{
  var active_user     = Session.getActiveUser().getEmail();
  var effective_user  = Session.getEffectiveUser().getEmail();
  var user            = Session.getUser().getEmail();

  var output = "<p>Active: " + active_user + "</p>";
  output += "<p>Effective: " + effective_user + "</p>";
  output += "<p>User: " + user + "</p>";
  return HtmlService.createHtmlOutput(output);
}

Si ejecutáis la web con vuestro usuario veréis que los 3 campos son iguales:

Usuarios con Google Apps Script
Si habéis habilitado que la web se puede ejecutar sin permisos de ninguno tipo, veréis que solo se llena el campo effective mientras que los otros dos quedan vacíos. 

Si ejecutas la web con otro usuario veras que el campo active y el campo effective difieren.

Conclusión:
- Session.getEffectiveUser() Nos devuelve con que permisos se esta ejecutando la web (generalmente el desarrollador del código que ha publicado la web)
- Session.getActiveUser(): Nos dice que usuario se ha conectado a la web. Este es el que tendremos que usar para saber que usuario esta usando nuestro web.

Con esta información podréis tener controlados que usuarios se conectan a vuestra web, pudiendo denegar servicio, o cambiar lo que vais a mostrar en función del tipo de usuario.

Ya veis que es muy sencillo saber que usuario se conecta a nuestro Google Apps Script y actuar en consecuencia.

No dudéis en hacerme llegar vuestras preguntas.

Nos vemos


No hay comentarios:

Publicar un comentario

Tal vez te interese