( resolved: BetterAuthSession, betterAuth: BetterAuthHandle, headers: Headers, )
| 85 | >; |
| 86 | |
| 87 | const principalFromSession = ( |
| 88 | resolved: BetterAuthSession, |
| 89 | betterAuth: BetterAuthHandle, |
| 90 | headers: Headers, |
| 91 | ): Effect.Effect<Principal> => { |
| 92 | const organizationId = resolved.session.activeOrganizationId ?? betterAuth.organizationId; |
| 93 | return resolveSelfHostOrgRole(betterAuth, headers, organizationId).pipe( |
| 94 | Effect.map((orgRole) => ({ |
| 95 | accountId: resolved.user.id, |
| 96 | organizationId, |
| 97 | organizationName: betterAuth.organizationName, |
| 98 | email: resolved.user.email, |
| 99 | name: resolved.user.name ?? null, |
| 100 | avatarUrl: resolved.user.image ?? null, |
| 101 | roles: parseRoles(resolved.user.role ?? null), |
| 102 | orgRoleModel: "organization" as const, |
| 103 | orgRole, |
| 104 | })), |
| 105 | ); |
| 106 | }; |
| 107 | |
| 108 | /** |
| 109 | * Gate the browser-approval endpoints behind a valid Better Auth session (the |
no test coverage detected