Prevent google drive actions to open new workspaces
This commit is contained in:
parent
d0ea2f7850
commit
4b9bb3b833
@ -33,6 +33,25 @@ export default providerRegistry.register({
|
||||
});
|
||||
})
|
||||
.then((token) => {
|
||||
const openWorkspaceIfExists = (file) => {
|
||||
const folderId = file
|
||||
&& file.appProperties
|
||||
&& file.appProperties.folderId;
|
||||
if (folderId) {
|
||||
// See if we have the corresponding workspace
|
||||
const workspaceParams = {
|
||||
providerId: 'googleDriveWorkspace',
|
||||
folderId,
|
||||
};
|
||||
const workspaceId = utils.makeWorkspaceId(workspaceParams);
|
||||
const workspace = store.getters['data/sanitizedWorkspaces'][workspaceId];
|
||||
// If we have the workspace, open it by changing the current URL
|
||||
if (workspace) {
|
||||
utils.setQueryParams(workspaceParams);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
switch (state.action) {
|
||||
case 'create':
|
||||
default:
|
||||
@ -41,24 +60,17 @@ export default providerRegistry.register({
|
||||
.then((folder) => {
|
||||
folder.appProperties = folder.appProperties || {};
|
||||
googleHelper.driveActionFolder = folder;
|
||||
if (folder.appProperties.folderId) {
|
||||
// Change current URL to workspace URL
|
||||
utils.setQueryParams({
|
||||
providerId: 'googleDriveWorkspace',
|
||||
folderId: folder.appProperties.folderId,
|
||||
sub: state.userId,
|
||||
});
|
||||
}
|
||||
openWorkspaceIfExists(folder);
|
||||
}, (err) => {
|
||||
if (!err || err.status !== 404) {
|
||||
throw err;
|
||||
}
|
||||
// We received a 404 error meaning we have no permission to read the folder
|
||||
// We received an HTTP 404 meaning we have no permission to read the folder
|
||||
googleHelper.driveActionFolder = { id: state.folderId };
|
||||
});
|
||||
|
||||
case 'open': {
|
||||
const getOneFile = (ids) => {
|
||||
const getOneFile = (ids = state.ids || []) => {
|
||||
const id = ids.shift();
|
||||
return id && googleHelper.getFile(token, id)
|
||||
.then((file) => {
|
||||
@ -68,31 +80,20 @@ export default providerRegistry.register({
|
||||
});
|
||||
};
|
||||
|
||||
return getOneFile(state.ids || [])
|
||||
.then(() => {
|
||||
return getOneFile()
|
||||
// Check if first file is part of a workspace
|
||||
const firstFile = googleHelper.driveActionFiles[0];
|
||||
if (firstFile && firstFile.appProperties && firstFile.appProperties.folderId) {
|
||||
// Change current URL to workspace URL
|
||||
utils.setQueryParams({
|
||||
providerId: 'googleDriveWorkspace',
|
||||
folderId: firstFile.appProperties.folderId,
|
||||
sub: state.userId,
|
||||
});
|
||||
}
|
||||
});
|
||||
.then(() => openWorkspaceIfExists(googleHelper.driveActionFiles[0]));
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
performAction() {
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
const state = googleHelper.driveState || {};
|
||||
const token = store.getters['data/googleTokens'][state.userId];
|
||||
return token && Promise.resolve()
|
||||
.then(() => {
|
||||
switch (state.action) {
|
||||
switch (token && state.action) {
|
||||
case 'create':
|
||||
default:
|
||||
return store.dispatch('createFile')
|
||||
.then((file) => {
|
||||
store.commit('file/setCurrentId', file.id);
|
||||
@ -102,6 +103,8 @@ export default providerRegistry.register({
|
||||
case 'open':
|
||||
return store.dispatch('queue/enqueue',
|
||||
() => this.openFiles(token, googleHelper.driveActionFiles));
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user