From 2cb7c55d13245784aee294bd11880651673c1d07 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 29 Jan 2026 21:07:50 +0000 Subject: [PATCH] feat: set roleId when inviting new members --- packages/api/src/routers/member.ts | 16 ++++++++++++++++ packages/db/src/repository/member.repo.ts | 2 ++ 2 files changed, 18 insertions(+) diff --git a/packages/api/src/routers/member.ts b/packages/api/src/routers/member.ts index 27d92ca3..615496c0 100644 --- a/packages/api/src/routers/member.ts +++ b/packages/api/src/routers/member.ts @@ -117,12 +117,20 @@ export const memberRouter = createTRPCRouter({ const existingUser = await userRepo.getByEmail(ctx.db, input.email); + // Get the workspace role to set roleId + const memberRole = await permissionRepo.getRoleByWorkspaceIdAndName( + ctx.db, + workspace.id, + "member", + ); + const invite = await memberRepo.create(ctx.db, { workspaceId: workspace.id, email: input.email, userId: existingUser?.id ?? null, createdBy: userId, role: "member", + roleId: memberRole?.id ?? null, status: "invited", }); @@ -636,12 +644,20 @@ export const memberRouter = createTRPCRouter({ } } + // Get the workspace role to set roleId + const memberRole = await permissionRepo.getRoleByWorkspaceIdAndName( + ctx.db, + invite.workspaceId, + "member", + ); + await memberRepo.create(ctx.db, { workspaceId: invite.workspaceId, email: user.email, userId: user.id, createdBy: user.id, role: "member", + roleId: memberRole?.id ?? null, status: "active", }); diff --git a/packages/db/src/repository/member.repo.ts b/packages/db/src/repository/member.repo.ts index 8098ed13..5aba6423 100644 --- a/packages/db/src/repository/member.repo.ts +++ b/packages/db/src/repository/member.repo.ts @@ -27,6 +27,7 @@ export const create = async ( workspaceId: number; createdBy: string; role: MemberRole; + roleId?: number | null; status: MemberStatus; }, ) => { @@ -39,6 +40,7 @@ export const create = async ( workspaceId: memberInput.workspaceId, createdBy: memberInput.createdBy, role: memberInput.role, + roleId: memberInput.roleId ?? null, status: memberInput.status, }) .returning({