From 1489604f82cfc8c77c9e2fe729d79d0d86cbf904 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 16 Mar 2023 23:57:11 -0700 Subject: [PATCH] send back invite url if no email service --- .../src/controllers/v1/membershipOrgController.ts | 13 +++++++++---- backend/src/controllers/v1/signupController.ts | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/src/controllers/v1/membershipOrgController.ts b/backend/src/controllers/v1/membershipOrgController.ts index 105be0503..de85e2184 100644 --- a/backend/src/controllers/v1/membershipOrgController.ts +++ b/backend/src/controllers/v1/membershipOrgController.ts @@ -7,7 +7,7 @@ import { updateSubscriptionOrgQuantity } from '../../helpers/organization'; import { sendMail } from '../../helpers/nodemailer'; import { TokenService } from '../../services'; import { OWNER, ADMIN, MEMBER, ACCEPTED, INVITED, TOKEN_EMAIL_ORG_INVITATION } from '../../variables'; -import { getSiteURL, getJwtSignupLifetime, getJwtSignupSecret } from '../../config'; +import { getSiteURL, getJwtSignupLifetime, getJwtSignupSecret, getSmtpConfigured } from '../../config'; /** * Delete organization membership with id [membershipOrgId] from organization @@ -99,7 +99,7 @@ export const changeMembershipOrgRole = async (req: Request, res: Response) => { * @returns */ export const inviteUserToOrganization = async (req: Request, res: Response) => { - let invitee, inviteeMembershipOrg; + let invitee, inviteeMembershipOrg, completeInviteLink; try { const { organizationId, inviteeEmail } = req.body; @@ -181,6 +181,10 @@ export const inviteUserToOrganization = async (req: Request, res: Response) => { callback_url: getSiteURL() + '/signupinvite' } }); + + if (!getSmtpConfigured()) { + completeInviteLink = `${getSiteURL() + '/signupinvite'}?token=${token}&to=${inviteeEmail}` + } } await updateSubscriptionOrgQuantity({ organizationId }); @@ -193,7 +197,8 @@ export const inviteUserToOrganization = async (req: Request, res: Response) => { } return res.status(200).send({ - message: `Sent an invite link to ${req.body.inviteeEmail}` + message: `Sent an invite link to ${req.body.inviteeEmail}`, + completeInviteLink }); }; @@ -218,7 +223,7 @@ export const verifyUserToOrganization = async (req: Request, res: Response) => { if (!membershipOrg) throw new Error('Failed to find any invitations for email'); - + await TokenService.validateToken({ type: TOKEN_EMAIL_ORG_INVITATION, email, diff --git a/backend/src/controllers/v1/signupController.ts b/backend/src/controllers/v1/signupController.ts index 00ed05ede..6adb0e7a8 100644 --- a/backend/src/controllers/v1/signupController.ts +++ b/backend/src/controllers/v1/signupController.ts @@ -66,7 +66,7 @@ export const verifyEmailSignup = async (req: Request, res: Response) => { const { email, code } = req.body; // initialize user account - user = await User.findOne({ email }); + user = await User.findOne({ email }).select('+publicKey'); if (user && user?.publicKey) { // case: user has already completed account return res.status(403).send({