Skip to content

Commit

Permalink
feat(server): always send invite email (#9168)
Browse files Browse the repository at this point in the history
  • Loading branch information
darkskygit committed Dec 16, 2024
1 parent 87bbcae commit de2dab3
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 27 deletions.
13 changes: 4 additions & 9 deletions packages/backend/server/src/core/workspaces/resolvers/team.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,10 @@ export class TeamWorkspaceResolver {
? WorkspaceMemberStatus.NeedMoreSeat
: WorkspaceMemberStatus.Pending
);
if (!needMoreSeat && sendInviteMail) {
// NOTE: we always send email even seat not enough
// because at this moment we cannot know whether the seat increase charge was successful
// after user click the invite link, we can check again and reject if charge failed
if (sendInviteMail) {
try {
await this.workspaceService.sendInviteMail(ret.inviteId, email);
ret.sentSuccess = true;
Expand Down Expand Up @@ -311,14 +314,6 @@ export class TeamWorkspaceResolver {
}
}

@OnEvent('workspace.team.seatAvailable')
async onSeatAvailable(payload: EventPayload<'workspace.team.seatAvailable'>) {
// send invite mail when seat is available for NeedMoreSeat member
for (const { inviteId, email } of payload) {
await this.workspaceService.sendInviteMail(inviteId, email);
}
}

@OnEvent('workspace.team.reviewRequest')
async onReviewRequest({
inviteIds,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,23 +215,24 @@ const MemberItem = ({
};

const getMemberStatus = (member: Member): I18nString => {
if (member.status === WorkspaceMemberStatus.Pending) {
return 'Pending';
} else if (member.status === WorkspaceMemberStatus.UnderReview) {
return 'Under-Review';
} else if (member.status === WorkspaceMemberStatus.Accepted) {
switch (member.permission) {
case Permission.Owner:
return 'Workspace Owner';
case Permission.Admin:
return 'Admin';
case Permission.Write:
return 'Collaborator';
default:
return 'Member';
}
} else {
return 'Need-More-Seats';
switch (member.status) {
case WorkspaceMemberStatus.NeedMoreSeat:
case WorkspaceMemberStatus.NeedMoreSeatAndReview:
case WorkspaceMemberStatus.Pending:
return 'Pending';
case WorkspaceMemberStatus.UnderReview:
return 'Under-Review';
case WorkspaceMemberStatus.Accepted:
switch (member.permission) {
case Permission.Owner:
return 'Workspace Owner';
case Permission.Admin:
return 'Admin';
case Permission.Write:
return 'Collaborator';
default:
return 'Member';
}
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,11 @@ export const MemberOptions = ({
onClick: handleRevoke,
show:
(isAdmin || isOwner) &&
member.status === WorkspaceMemberStatus.Pending,
[
WorkspaceMemberStatus.NeedMoreSeat,
WorkspaceMemberStatus.NeedMoreSeatAndReview,
WorkspaceMemberStatus.Pending,
].includes(member.status),
},
{
label: t['com.affine.payment.member.team.remove'](),
Expand Down

0 comments on commit de2dab3

Please sign in to comment.