diff --git a/deadlock-plugins/deadlock-extension/src/core/api.service.ts b/deadlock-plugins/deadlock-extension/src/core/api.service.ts index b362180001e3dcb17848c3649ad430d0fc380c69..703db95c00d0b36b28e76c73d6721e11ad07ee2b 100644 --- a/deadlock-plugins/deadlock-extension/src/core/api.service.ts +++ b/deadlock-plugins/deadlock-extension/src/core/api.service.ts @@ -113,8 +113,9 @@ export default class ApiService { private async onInvalidRefreshToken(originalConfig) { try { - await Controller.instance.authenticate(); - return this.axiosInstance(originalConfig); + if (await Controller.instance.userAuthenticateMessage('Vous avez été déconnecté. Se reconnecter ?')) { + return this.axiosInstance(originalConfig); + } } catch (_error) { return Promise.reject(_error); } diff --git a/deadlock-plugins/deadlock-extension/src/core/controller.ts b/deadlock-plugins/deadlock-extension/src/core/controller.ts index 2a34a89d805d3fd98dab8a057e57e69fe546751e..70082bee87eccfa7e4c7e31b1648cf628408ebca 100644 --- a/deadlock-plugins/deadlock-extension/src/core/controller.ts +++ b/deadlock-plugins/deadlock-extension/src/core/controller.ts @@ -151,6 +151,16 @@ export default class Controller { AuthenticationView.instance.isAlreadyConnected = true; } + public async userAuthenticateMessage(message: string): Promise<boolean> { + const answer = await window.showInformationMessage(message, { modal: true }, 'Connexion'); + if (answer === 'Connexion') { + await this.authenticate(); + return true; + } else { + return false; + } + } + public static openBrowserWithUrl(url: string) { commands.executeCommand(CommandHandler.instance.openUrlInBrowserCommand.command, Uri.parse(url)); } @@ -171,8 +181,9 @@ export default class Controller { const hadBeenConnected = (await ExtensionStore.instance.getAccessToken()) !== undefined; if (!hadBeenConnected) { - await this.authenticate(); - window.showInformationMessage('Connexion validée'); + if (await this.userAuthenticateMessage('Connectez-vous avant de commencer la mission.')) { + window.showInformationMessage('Connexion validée'); + } else return; } const reviewer = await ApiService.instance.getCurrentUser();