From 7aefed46dcdb5d795fe9755c9fc64f445136bc17 Mon Sep 17 00:00:00 2001 From: Michael Kret <88898367+michael-radency@users.noreply.github.com> Date: Mon, 5 Dec 2022 18:28:34 +0200 Subject: [PATCH] fix(core): OAuth2 scopes does not save --- .../cli/src/credentials/oauth2Credential.api.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/credentials/oauth2Credential.api.ts b/packages/cli/src/credentials/oauth2Credential.api.ts index e3fb2c0d2..e3767a233 100644 --- a/packages/cli/src/credentials/oauth2Credential.api.ts +++ b/packages/cli/src/credentials/oauth2Credential.api.ts @@ -78,12 +78,14 @@ oauth2CredentialController.get( throw new ResponseHelper.InternalServerError((error as Error).message); } + const credentialType = (credential as unknown as ICredentialsEncrypted).type; + const mode: WorkflowExecuteMode = 'internal'; const timezone = config.getEnv('generic.timezone'); const credentialsHelper = new CredentialsHelper(encryptionKey); const decryptedDataOriginal = await credentialsHelper.getDecrypted( credential as INodeCredentialsDetails, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, mode, timezone, true, @@ -91,13 +93,17 @@ oauth2CredentialController.get( // At some point in the past we saved hidden scopes to credentials (but shouldn't) // Delete scope before applying defaults to make sure new scopes are present on reconnect - if (decryptedDataOriginal?.scope) { + if ( + decryptedDataOriginal?.scope && + credentialType.includes('OAuth2') && + !['oAuth2Api'].includes(credentialType) + ) { delete decryptedDataOriginal.scope; } const oauthCredentials = credentialsHelper.applyDefaultsAndOverwrites( decryptedDataOriginal, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, mode, timezone, ); @@ -128,7 +134,7 @@ oauth2CredentialController.get( // Encrypt the data const credentials = new Credentials( credential as INodeCredentialsDetails, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, (credential as unknown as ICredentialsEncrypted).nodesAccess, ); decryptedDataOriginal.csrfSecret = csrfSecret;