diff --git a/services/web/app/coffee/Features/Captcha/CaptchaMiddleware.coffee b/services/web/app/coffee/Features/Captcha/CaptchaMiddleware.coffee index 4a3ce18b5e..5a846ff839 100644 --- a/services/web/app/coffee/Features/Captcha/CaptchaMiddleware.coffee +++ b/services/web/app/coffee/Features/Captcha/CaptchaMiddleware.coffee @@ -16,6 +16,8 @@ module.exports = CaptchaMiddleware = return next(error) if error? if !body?.success logger.warn {statusCode: response.statusCode, body: body}, 'failed recaptcha siteverify request' - return res.sendStatus 400 + return res.status(400).send({errorReason:"cannot_verify_user_not_robot", message: + {text:"Sorry, we could not verify that you are not a robot. Please check that Google reCAPTCHA is not being blocked by an ad blocker or firewall."} + }) else return next() diff --git a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee index 28f0cbb5ee..898abe52bb 100644 --- a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee +++ b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee @@ -65,7 +65,7 @@ module.exports = CollaboratorsInviteController = email = EmailHelper.parseEmail(email) if !email? or email == "" logger.log {projectId, email, sendingUserId}, "invalid email address" - return res.sendStatus(400) + return res.status(400).send({errorReason:"invalid_email"}) CollaboratorsInviteController._checkRateLimit sendingUserId, (error, underRateLimit) -> return next(error) if error? if !underRateLimit diff --git a/services/web/app/views/project/editor/share.pug b/services/web/app/views/project/editor/share.pug index 98568df122..a5430d710a 100644 --- a/services/web/app/views/project/editor/share.pug +++ b/services/web/app/views/project/editor/share.pug @@ -185,6 +185,8 @@ script(type='text/ng-template', id='shareProjectModalTemplate') span(ng-switch="state.errorReason") span(ng-switch-when="cannot_invite_non_user") | #{translate("cannot_invite_non_user")} + span(ng-switch-when="cannot_verify_user_not_robot") + | #{translate("cannot_verify_user_not_robot")} span(ng-switch-when="cannot_invite_self") | #{translate("cannot_invite_self")} span(ng-switch-when="invalid_email") diff --git a/services/web/public/coffee/ide/share/controllers/ShareProjectModalController.coffee b/services/web/public/coffee/ide/share/controllers/ShareProjectModalController.coffee index 0c16dcbb39..b26bef3c06 100644 --- a/services/web/public/coffee/ide/share/controllers/ShareProjectModalController.coffee +++ b/services/web/public/coffee/ide/share/controllers/ShareProjectModalController.coffee @@ -127,11 +127,13 @@ define [ # with new collaborator information. addNextMember() , 0 - .catch (err) -> + .catch (httpResponse) -> + {data, status, headers, config } = httpResponse $scope.state.inflight = false $scope.state.error = true - if err.status? and err.status == 400 - $scope.state.errorReason = 'invalid_email' + + if data?.errorReason? + $scope.state.errorReason = data?.errorReason else $scope.state.errorReason = null