diff --git a/Code.js b/Code.js index 9d62bd9..605bbf9 100644 --- a/Code.js +++ b/Code.js @@ -1054,7 +1054,8 @@ function exigirCobranza_() { * las personas agregadas una por una (tania@, leo@). Workspace comparte con todo helgen.tech lo que se crea (§6.11). */ function privado_(item) { - if (item.getSharingAccess() !== DriveApp.Access.PRIVATE) item.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.NONE); + // Permission.NONE no está soportado (da "Access denied: DriveApp"); con PRIVATE el permiso se ignora. + if (item.getSharingAccess() !== DriveApp.Access.PRIVATE) item.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.VIEW); return item; } diff --git a/tests/cobranza.test.js b/tests/cobranza.test.js index aec170d..49e664e 100644 --- a/tests/cobranza.test.js +++ b/tests/cobranza.test.js @@ -35,7 +35,7 @@ function libro(id,nombre,pestanas){const L={id,nombre,pest:pestanas||{},getId:() // ---- Drive simulado ---- let nId=0; const carpetas={}, archivos={}; // Como Workspace de helgen.tech: todo lo nuevo nace compartido con el dominio (acceso 'DOMAIN') -const compartible=o=>Object.assign(o,{acceso:'DOMAIN',getSharingAccess:()=>o.acceso,setSharing:(a,p)=>{o.acceso=a;o.permiso=p}}); +const compartible=o=>Object.assign(o,{acceso:'DOMAIN',getSharingAccess:()=>o.acceso,setSharing:(a,p)=>{if(p==='NONE')throw new Error('Access denied: DriveApp.');o.acceso=a;o.permiso=p}}); // NONE no está soportado en Apps Script function carpeta(nombre,padre){const f=compartible({id:'F'+(++nId),nombre,padre,hijos:[],archivos:[],trashed:false}); Object.assign(f,{ getId:()=>f.id,getName:()=>f.nombre,getUrl:()=>'https://drive/'+f.id,isTrashed:()=>f.trashed, getFoldersByName:n=>{const l=f.hijos.filter(h=>h.nombre===n);let i=0;return{hasNext:()=>il[i++]}},