From a0e32c0fbdf01850ec5ef61f734d112954f707c3 Mon Sep 17 00:00:00 2001 From: Zai Shi Date: Fri, 21 Mar 2025 18:44:05 +0100 Subject: [PATCH] Auto select team on creation (#567) - Updated usersCrudHandlers to create a team upon user sign-up and set the team member's selection status. - Modified client and server app implementations to ensure the selected team ID is updated after team creation. ---- > [!IMPORTANT] > Automatically select a team upon user creation by updating backend and client/server logic to set the selected team ID after team creation. > > - **Backend**: > - In `usersCrudHandlers` in `crud.tsx`, create a team on user sign-up and set `isSelected` to `BooleanTrue.TRUE` for the team member. > - **Client**: > - In `_StackClientAppImplIncomplete` in `client-app-impl.ts`, update `createTeam()` to set `selectedTeamId` after team creation. > - **Server**: > - In `_StackServerAppImplIncomplete` in `server-app-impl.ts`, update `createTeam()` to set `selectedTeamId` after team creation. > > This description was created by [Ellipsis](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral) for 0321b6c7247985c7aaaffb68a0ec2ce23e71c708. It will automatically update as commits are pushed. --- apps/backend/src/app/api/latest/users/crud.tsx | 15 ++++++++++++++- .../apps/implementations/client-app-impl.ts | 1 + .../apps/implementations/server-app-impl.ts | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/backend/src/app/api/latest/users/crud.tsx b/apps/backend/src/app/api/latest/users/crud.tsx index 52265b5cf..c2956f53d 100644 --- a/apps/backend/src/app/api/latest/users/crud.tsx +++ b/apps/backend/src/app/api/latest/users/crud.tsx @@ -728,7 +728,7 @@ export const usersCrudHandlers = createLazyProxy(() => createCrudHandlers(usersC }); if (auth.tenancy.config.create_team_on_sign_up) { - await teamsCrudHandlers.adminCreate({ + const team = await teamsCrudHandlers.adminCreate({ data: { display_name: data.display_name ? `${data.display_name}'s Team` : @@ -740,6 +740,19 @@ export const usersCrudHandlers = createLazyProxy(() => createCrudHandlers(usersC tenancy: auth.tenancy, user: result, }); + + await prismaClient.teamMember.update({ + where: { + tenancyId_projectUserId_teamId: { + tenancyId: auth.tenancy.id, + projectUserId: result.id, + teamId: team.id, + }, + }, + data: { + isSelected: BooleanTrue.TRUE, + }, + }); } runAsynchronouslyAndWaitUntil(sendUserCreatedWebhook({ diff --git a/packages/template/src/lib/stack-app/apps/implementations/client-app-impl.ts b/packages/template/src/lib/stack-app/apps/implementations/client-app-impl.ts index e210867c8..bfdf2a840 100644 --- a/packages/template/src/lib/stack-app/apps/implementations/client-app-impl.ts +++ b/packages/template/src/lib/stack-app/apps/implementations/client-app-impl.ts @@ -856,6 +856,7 @@ export class _StackClientAppImplIncomplete {