diff --git a/services/web/app/src/Features/LinkedFiles/LinkedFilesController.js b/services/web/app/src/Features/LinkedFiles/LinkedFilesController.js index 6a5fcc5bc5..32c05dfb36 100644 --- a/services/web/app/src/Features/LinkedFiles/LinkedFilesController.js +++ b/services/web/app/src/Features/LinkedFiles/LinkedFilesController.js @@ -190,8 +190,12 @@ module.exports = LinkedFilesController = { res.status(400) plainTextResponse(res, 'This feature is not enabled on your account') } else if (error instanceof RemoteServiceError) { - res.status(502) - plainTextResponse(res, 'The remote service produced an error') + if (error.info?.statusCode === 403) { + res.status(400).json({ relink: true }) + } else { + res.status(502) + plainTextResponse(res, 'The remote service produced an error') + } } else if (error instanceof FileCannotRefreshError) { res.status(400) plainTextResponse(res, 'This file cannot be refreshed') diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index 1ae1c23c04..2df650977b 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -253,6 +253,7 @@ "math_inline": "", "maximum_files_uploaded_together": "", "mendeley_groups_loading_error": "", + "mendeley_groups_relink": "", "mendeley_integration": "", "mendeley_is_premium": "", "mendeley_reference_loading_error": "", @@ -358,6 +359,7 @@ "refresh_page_after_linking_dropbox": "", "refresh_page_after_starting_free_trial": "", "refreshing": "", + "relink_your_account": "", "remote_service_error": "", "remove": "", "remove_collaborator": "", @@ -486,6 +488,7 @@ "work_with_non_overleaf_users": "", "your_message": "", "zotero_groups_loading_error": "", + "zotero_groups_relink": "", "zotero_integration": "", "zotero_is_premium": "", "zotero_reference_loading_error": "", diff --git a/services/web/frontend/stories/modals/create-file/create-file-modal-decorator.js b/services/web/frontend/stories/modals/create-file/create-file-modal-decorator.js index 7ab3270626..ec4df863bd 100644 --- a/services/web/frontend/stories/modals/create-file/create-file-modal-decorator.js +++ b/services/web/frontend/stories/modals/create-file/create-file-modal-decorator.js @@ -65,6 +65,18 @@ export const mockCreateFileModalFetch = fetchMock => }, ], }) + .get('path:/zotero/groups', { + groups: [ + { + id: 'group-1', + name: 'Group One', + }, + { + id: 'group-2', + name: 'Group Two', + }, + ], + }) .get('express:/project/:projectId/entities', { entities: [ { diff --git a/services/web/locales/en.json b/services/web/locales/en.json index 7f74809302..6d84404135 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -750,6 +750,7 @@ "mendeley_reference_loading_success": "Loaded references from Mendeley", "mendeley_reference_loading_error": "Error, could not load references from Mendeley", "mendeley_groups_loading_error": "There was an error loading groups from Mendeley", + "mendeley_groups_relink": "There was an error accessing your Mendeley data. This was likely caused by lack of permissions. Please re-link your account and try again.", "zotero_integration": "Zotero Integration", "zotero_sync_description": "With Zotero integration you can import your references from Zotero into your __appName__ projects.", "zotero_is_premium": "Zotero integration is a premium feature", @@ -759,6 +760,8 @@ "zotero_reference_loading_success": "Loaded references from Zotero", "zotero_reference_loading_error": "Error, could not load references from Zotero", "zotero_groups_loading_error": "There was an error loading groups from Zotero", + "zotero_groups_relink": "There was an error accessing your Zotero data. This was likely caused by lack of permissions. Please re-link your account and try again.", + "relink_your_account": "Re-link your account", "reference_import_button": "Import References to", "unlink_reference": "Unlink References Provider", "unlink_warning_reference": "Warning: When you unlink your account from this provider you will not be able to import references into your projects.",