diff --git a/plugins/email/server/auth/email.ts b/plugins/email/server/auth/email.ts index 6e61545f2..a0e9a0266 100644 --- a/plugins/email/server/auth/email.ts +++ b/plugins/email/server/auth/email.ts @@ -112,6 +112,7 @@ router.get( if (user.isInvited) { await new WelcomeEmail({ to: user.email, + role: user.role, teamUrl: user.team.url, }).schedule(); diff --git a/server/commands/accountProvisioner.ts b/server/commands/accountProvisioner.ts index b93116a51..e5bb8ef9e 100644 --- a/server/commands/accountProvisioner.ts +++ b/server/commands/accountProvisioner.ts @@ -153,6 +153,7 @@ async function accountProvisioner({ if (isNewUser) { await new WelcomeEmail({ to: user.email, + role: user.role, teamUrl: team.url, }).schedule(); } diff --git a/server/emails/templates/CollectionSharedEmail.tsx b/server/emails/templates/CollectionSharedEmail.tsx index 00efabdb1..64f487153 100644 --- a/server/emails/templates/CollectionSharedEmail.tsx +++ b/server/emails/templates/CollectionSharedEmail.tsx @@ -75,7 +75,7 @@ View Document: ${teamUrl}${collection.path} const permission = membership.permission === CollectionPermission.ReadWrite ? "view and edit" - : CollectionPermission.Admin + : membership.permission === CollectionPermission.Admin ? "manage" : "view"; diff --git a/server/emails/templates/WelcomeEmail.tsx b/server/emails/templates/WelcomeEmail.tsx index a7cb90796..eb72b1594 100644 --- a/server/emails/templates/WelcomeEmail.tsx +++ b/server/emails/templates/WelcomeEmail.tsx @@ -1,4 +1,5 @@ import * as React from "react"; +import { UserRole } from "@shared/types"; import env from "@server/env"; import BaseEmail, { EmailProps } from "./BaseEmail"; import Body from "./components/Body"; @@ -10,18 +11,28 @@ import Header from "./components/Header"; import Heading from "./components/Heading"; type Props = EmailProps & { + role: UserRole; teamUrl: string; }; +type BeforeSend = Record; + /** * Email sent to a user when their account has just been created, or they signed * in for the first time from an invite. */ -export default class WelcomeEmail extends BaseEmail { +export default class WelcomeEmail extends BaseEmail { protected subject() { return `Welcome to ${env.APP_NAME}`; } + protected async beforeSend(props: Props) { + if (props.role === UserRole.Guest) { + return false; + } + return {}; + } + protected preview() { return `${env.APP_NAME} is a place for your team to build and share knowledge.`; }