En muchas ocasiones nos puede resultar útil cambiar los permisos de un árbol de directorios de Drive , de forma que con una sola llamada a un script nos aseguremos que todos los ficheros y carpetas que cuelgan de la carpeta origen tienen los permisos que nosotros queremos.
Hace un tiempo ya hice un artículo sobre como cambiar permisos de una carpeta de Drive con Google Apps Script, así que tomando ese código de base, ya veréis que es muy fácil implementarlo para que sea recursivo en todo el árbol de carpetas.
Todo lo que hemos de hacer para conseguir recursividad es llamar a la misma función que estamos creando para cada una de las subcarpetas de la carpeta actual. Dicho así, parece complejo, pero viendo el código Google Apps Script lo tendréis clarísimo:
function SetPermisosRecursivos(folder) { //Seteamos permisos a la carpeta actual folder.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); //Inspeccionamos todas las carpetas hijas var folders = folder.getFolders(); while(folders.hasNext()) { SetPermisosRecursivos(folders.next()); } //Seteamos permisos a todos los ficheros de la carpeta actual var files = folder.getFiles(); while(files.hasNext()) { files.next().setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); } }
En este ejemplo todas las carpetas y ficheros que dependan de la carpeta que le pasemos a la función se compartirán con cualquier que tenga el link. Evidentemente podéis cambiar esa linea de código para que los permisos se apliquen como lo necesites en tu caso.
Cualquier duda que tengáis, no vaciléis en hacérmela llegar.
Nos vemos
Disculpa bue articulo, me gustaria saber donde meto el Id de mi carpeta principal....
ResponderEliminarLo que tienes que pasarle a la función es el objeto de folder. Puedes conseguir ese objeto haciendo un DriveApp.getfolderbyid(id) y pasarselo a la función.
EliminarEspero que te sirva, cualquier cosa, dilo. Nos vemos!
Si amigo gracias es asi folder = DriveApp.getfolderbyid(id);
EliminarPerfecto, encantado de haberte ayudado!
EliminarNos vemos