diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx
index 27db5f6a4b..9dfe25906b 100644
--- a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx
+++ b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx
@@ -1,13 +1,12 @@
-import { createRouterCaller } from "app/_trpc/context";
import type { SearchParams } from "app/_types";
import type { Session } from "next-auth";
import { unstable_cache } from "next/cache";
+import { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner";
import { TeamsListing } from "@calcom/features/ee/teams/components/TeamsListing";
import { TeamRepository } from "@calcom/lib/server/repository/team";
import { TeamService } from "@calcom/lib/server/service/team";
import prisma from "@calcom/prisma";
-import { meRouter } from "@calcom/trpc/server/routers/viewer/me/_router";
import { TRPCError } from "@trpc/server";
@@ -47,18 +46,24 @@ export const ServerTeamsListing = async ({
}
}
- const meCaller = await createRouterCaller(meRouter);
- const [user, teams] = await Promise.all([meCaller.get(), getCachedTeams(userId)]);
+ const teams = await getCachedTeams(userId);
+ const userProfile = session?.user?.profile;
+ const orgId = userProfile?.organizationId ?? session?.user.org?.id;
+ const orgRole =
+ session?.user?.org?.role ??
+ userProfile?.organization?.members.find((m: { userId: number }) => m.userId === userId)?.role;
+ const isOrgAdminOrOwner = checkAdminOrOwner(orgRole);
return {
Main: (
),
- CTA: !user.organizationId || user.organization.isOrgAdmin ? : null,
+ CTA: !orgId || isOrgAdminOrOwner ? : null,
};
};
diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/layout.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/layout.tsx
index 3800799f09..05be9889d6 100644
--- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/layout.tsx
+++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/layout.tsx
@@ -8,7 +8,12 @@ import { buildLegacyRequest } from "@lib/buildLegacyCtx";
const OrgAdminOnlyLayout = async ({ children }: { children: React.ReactNode }) => {
const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) });
- const isOrgAdminOrOwner = checkAdminOrOwner(session?.user?.org?.role);
+ const userProfile = session?.user?.profile;
+ const userId = session?.user?.id;
+ const orgRole =
+ session?.user?.org?.role ??
+ userProfile?.organization?.members.find((m: { userId: number }) => m.userId === userId)?.role;
+ const isOrgAdminOrOwner = checkAdminOrOwner(orgRole);
if (!isOrgAdminOrOwner) {
return redirect("/settings/organizations/profile");
diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/layout.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/layout.tsx
index 3800799f09..05be9889d6 100644
--- a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/layout.tsx
+++ b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/layout.tsx
@@ -8,7 +8,12 @@ import { buildLegacyRequest } from "@lib/buildLegacyCtx";
const OrgAdminOnlyLayout = async ({ children }: { children: React.ReactNode }) => {
const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) });
- const isOrgAdminOrOwner = checkAdminOrOwner(session?.user?.org?.role);
+ const userProfile = session?.user?.profile;
+ const userId = session?.user?.id;
+ const orgRole =
+ session?.user?.org?.role ??
+ userProfile?.organization?.members.find((m: { userId: number }) => m.userId === userId)?.role;
+ const isOrgAdminOrOwner = checkAdminOrOwner(orgRole);
if (!isOrgAdminOrOwner) {
return redirect("/settings/organizations/profile");
diff --git a/packages/features/ee/teams/components/TeamList.tsx b/packages/features/ee/teams/components/TeamList.tsx
index 6f7702751e..74f23e3f90 100644
--- a/packages/features/ee/teams/components/TeamList.tsx
+++ b/packages/features/ee/teams/components/TeamList.tsx
@@ -17,7 +17,7 @@ import TeamListItem from "./TeamListItem";
interface Props {
teams: RouterOutputs["viewer"]["teams"]["list"];
- user: RouterOutputs["viewer"]["me"]["get"];
+ orgId: number | null;
/**
* True for teams that are pending invite acceptance
*/
@@ -28,7 +28,7 @@ export default function TeamList(props: Props) {
const utils = trpc.useUtils();
const { t } = useLocale();
- const { user } = props;
+ const { orgId } = props;
const [hideDropdown, setHideDropdown] = useState(false);
@@ -56,13 +56,11 @@ export default function TeamList(props: Props) {
deleteTeamMutation.mutate({ teamId });
}
- if (!user) return null;
- const isUserAlreadyInAnOrganization = user.profile.organization;
return (