From 6b6ccf92a34c1ee8a902269da0c2a584199862bb Mon Sep 17 00:00:00 2001 From: Evan <50347938+Badbird5907@users.noreply.github.com> Date: Wed, 17 Sep 2025 23:39:44 -0400 Subject: [PATCH] fix(organization): membership check for organizations with large member counts (#4724) Co-authored-by: Alex Yang --- .../src/plugins/organization/routes/crud-org.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/better-auth/src/plugins/organization/routes/crud-org.ts b/packages/better-auth/src/plugins/organization/routes/crud-org.ts index 90e6adc8b2..f2395e073e 100644 --- a/packages/better-auth/src/plugins/organization/routes/crud-org.ts +++ b/packages/better-auth/src/plugins/organization/routes/crud-org.ts @@ -707,9 +707,10 @@ export const getFullOrganization = ( message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND, }); } - const isMember = organization?.members.find( - (member) => member.userId === session.user.id, - ); + const isMember = await adapter.checkMembership({ + userId: session.user.id, + organizationId: organization.id, + }); if (!isMember) { await adapter.setActiveOrganization(session.session.token, null); throw new APIError("FORBIDDEN", { @@ -717,11 +718,6 @@ export const getFullOrganization = ( ORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION, }); } - if (!organization) { - throw new APIError("BAD_REQUEST", { - message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND, - }); - } type OrganizationReturn = O["teams"] extends { enabled: true } ? { members: InferMember[];