From ecdd08624f61ccff8128b7cb3241f39e664e1c7f Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Fri, 23 Jul 2021 14:27:48 -0500 Subject: [PATCH] Feature/cli fail login on captcha request (#439) * Fail CLI login if captcha is required by the server. * Linter fixes --- common/src/services/api.service.ts | 4 ++-- node/src/cli/commands/login.command.ts | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/src/services/api.service.ts b/common/src/services/api.service.ts index 0ac78548..df1dbec5 100644 --- a/common/src/services/api.service.ts +++ b/common/src/services/api.service.ts @@ -835,7 +835,7 @@ export class ApiService implements ApiServiceAbstraction { } async postOrganizationUserBulkConfirm(organizationId: string, request: OrganizationUserBulkConfirmRequest): Promise> { - const r = await this.send('POST', '/organizations/' + organizationId + '/users/confirm', request, true, true); + const r = await this.send('POST', '/organizations/' + organizationId + '/users/confirm', request, true, true); return new ListResponse(r, OrganizationUserBulkResponse); } @@ -1262,7 +1262,7 @@ export class ApiService implements ApiServiceAbstraction { } async postProviderUserBulkConfirm(providerId: string, request: ProviderUserBulkConfirmRequest): Promise> { - const r = await this.send('POST', '/providers/' + providerId + '/users/confirm', request, true, true); + const r = await this.send('POST', '/providers/' + providerId + '/users/confirm', request, true, true); return new ListResponse(r, ProviderUserBulkResponse); } diff --git a/node/src/cli/commands/login.command.ts b/node/src/cli/commands/login.command.ts index ed8d8ada..2ab8aa61 100644 --- a/node/src/cli/commands/login.command.ts +++ b/node/src/cli/commands/login.command.ts @@ -166,6 +166,10 @@ export class LoginCommand { } else { response = await this.authService.logIn(email, password); } + if (response.captchaSiteKey) { + return Response.badRequest('Your authentication request appears to be coming from a bot\n' + + 'Please log in using your API key (https://bitwarden.com/help/article/cli/#using-an-api-key)'); + } if (response.twoFactor) { let selectedProvider: any = null; const twoFactorProviders = this.authService.getSupportedTwoFactorProviders(null);