diff --git a/server/googleActions.js b/server/googleActions.js index 0ca7556ba..b13ca11b9 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -6,6 +6,7 @@ import config from './config.js'; let serviceAuth; +let clientEmail; if(!config.get('service_account')){ const reset = '\x1b[0m'; // Reset to default style const yellow = '\x1b[33m'; // yellow color @@ -15,6 +16,10 @@ if(!config.get('service_account')){ JSON.parse(config.get('service_account')) : config.get('service_account'); + if(keys?.client_email) { + clientEmail = keys.client_email; + } + try { serviceAuth = googleDrive.auth.fromJSON(keys); serviceAuth.scopes = ['https://www.googleapis.com/auth/drive']; @@ -227,14 +232,30 @@ const GoogleActions = { if(!obj) return; + if(clientEmail) { + await drive.permissions.create({ + resource : { + type : 'user', + emailAddress : clientEmail, + role : 'writer' + }, + fileId : obj.data.id, + fields : 'id', + }) + .catch((err)=>{ + console.log('Error adding Service Account permissions on Google Drive file'); + console.error(err); + }); + } + await drive.permissions.create({ resource : { type : 'anyone', - role : 'writer' }, + role : 'writer' }, fileId : obj.data.id, fields : 'id', }) .catch((err)=>{ - console.log('Error updating permissions'); + console.log('Error adding "Anyone" permissions on Google Drive file'); console.error(err); });