From 157b141efd86f51648fd610de75a2416c9eeda52 Mon Sep 17 00:00:00 2001 From: Satya Patel Date: Fri, 6 Feb 2026 16:50:25 -0800 Subject: [PATCH] fix(auth): sort org memberships by creation date so newest org is selected by default When activeOrganizationId is unset, findFirst() returned whichever membership the database happened to return first (typically oldest). This caused users to be signed into older test orgs instead of their primary org. --- packages/auth/src/server.ts | 3 ++- packages/trpc/src/router/user/user.ts | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/auth/src/server.ts b/packages/auth/src/server.ts index e89de8b6fcc..a74eefb42f1 100644 --- a/packages/auth/src/server.ts +++ b/packages/auth/src/server.ts @@ -23,7 +23,7 @@ import { mcp, organization, } from "better-auth/plugins"; -import { and, count, eq } from "drizzle-orm"; +import { and, count, desc, eq } from "drizzle-orm"; import type Stripe from "stripe"; import { env } from "./env"; import { acceptInvitationEndpoint } from "./lib/accept-invitation-endpoint"; @@ -406,6 +406,7 @@ export const auth = betterAuth({ eq(members.organizationId, activeOrganizationId), ) : eq(members.userId, session.userId ?? user.id), + orderBy: desc(members.createdAt), }); if (!activeOrganizationId && membership?.organizationId) { diff --git a/packages/trpc/src/router/user/user.ts b/packages/trpc/src/router/user/user.ts index 4c4df3f2fd4..5840a707f76 100644 --- a/packages/trpc/src/router/user/user.ts +++ b/packages/trpc/src/router/user/user.ts @@ -2,7 +2,7 @@ import { db } from "@superset/db/client"; import { members, users } from "@superset/db/schema"; import { TRPCError, type TRPCRouterRecord } from "@trpc/server"; import { del, put } from "@vercel/blob"; -import { and, eq } from "drizzle-orm"; +import { and, desc, eq } from "drizzle-orm"; import { z } from "zod"; import { protectedProcedure } from "../../trpc"; @@ -20,6 +20,7 @@ export const userRouter = { eq(members.organizationId, activeOrganizationId), ) : eq(members.userId, ctx.session.user.id), + orderBy: desc(members.createdAt), with: { organization: true, }, @@ -31,6 +32,7 @@ export const userRouter = { myOrganizations: protectedProcedure.query(async ({ ctx }) => { const memberships = await db.query.members.findMany({ where: eq(members.userId, ctx.session.user.id), + orderBy: desc(members.createdAt), with: { organization: true, },