diff --git a/packages/features/ee/organizations/pages/settings/appearance.tsx b/packages/features/ee/organizations/pages/settings/appearance.tsx
index 2658f2406d..7c9c76e19d 100644
--- a/packages/features/ee/organizations/pages/settings/appearance.tsx
+++ b/packages/features/ee/organizations/pages/settings/appearance.tsx
@@ -1,5 +1,6 @@
"use client";
+import { useSession } from "next-auth/react";
import { useRouter } from "next/navigation";
import { useState, useEffect } from "react";
import { useForm } from "react-hook-form";
@@ -212,6 +213,8 @@ const OrgAppearanceView = ({
const OrgAppearanceViewWrapper = () => {
const router = useRouter();
const { t } = useLocale();
+ const session = useSession();
+ const orgRole = session?.data?.user?.org?.role;
const { data: currentOrg, isPending, error } = trpc.viewer.organizations.listCurrent.useQuery();
useEffect(
@@ -229,9 +232,7 @@ const OrgAppearanceViewWrapper = () => {
if (!currentOrg) return null;
- const isAdminOrOwner =
- currentOrg &&
- (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN);
+ const isAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN;
return ;
};
diff --git a/packages/features/ee/organizations/pages/settings/general.tsx b/packages/features/ee/organizations/pages/settings/general.tsx
index cfb4473ec2..51339f8c4c 100644
--- a/packages/features/ee/organizations/pages/settings/general.tsx
+++ b/packages/features/ee/organizations/pages/settings/general.tsx
@@ -1,5 +1,6 @@
"use client";
+import { useSession } from "next-auth/react";
import { useRouter } from "next/navigation";
import { useEffect } from "react";
import { Controller, useForm } from "react-hook-form";
@@ -52,6 +53,8 @@ interface GeneralViewProps {
const OrgGeneralView = () => {
const { t } = useLocale();
const router = useRouter();
+ const session = useSession();
+ const orgRole = session?.data?.user?.org?.role;
const {
data: currentOrg,
@@ -73,8 +76,7 @@ const OrgGeneralView = () => {
if (!currentOrg) {
return null;
}
- const isAdminOrOwner =
- currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN;
+ const isAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN;
return (
@@ -84,7 +86,7 @@ const OrgGeneralView = () => {
localeProp={user?.locale ?? "en"}
/>
-
+
);
};
diff --git a/packages/features/ee/sso/page/orgs-sso-view.tsx b/packages/features/ee/sso/page/orgs-sso-view.tsx
index ea27d90ff8..9d42e9e0f6 100644
--- a/packages/features/ee/sso/page/orgs-sso-view.tsx
+++ b/packages/features/ee/sso/page/orgs-sso-view.tsx
@@ -1,11 +1,9 @@
"use client";
-import { useRouter } from "next/navigation";
-import { useEffect } from "react";
+import { useSession } from "next-auth/react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { MembershipRole } from "@calcom/prisma/enums";
-import { trpc } from "@calcom/trpc/react";
import { AppSkeletonLoader as SkeletonLoader, Meta } from "@calcom/ui";
import { getLayout } from "../../../settings/layouts/SettingsLayout";
@@ -13,36 +11,23 @@ import SSOConfiguration from "../components/SSOConfiguration";
const SAMLSSO = () => {
const { t } = useLocale();
- const router = useRouter();
- const {
- data: currentOrg,
- isPending,
- error,
- } = trpc.viewer.organizations.listCurrent.useQuery(undefined, {});
+ const { data, status } = useSession();
+ const org = data?.user.org;
- useEffect(
- function refactorMeWithoutEffect() {
- if (error) {
- router.push("/settings");
- }
- },
- [error]
- );
-
- if (isPending)
+ if (status === "loading")
;
- if (!currentOrg) {
+
+ if (!org) {
return null;
}
- const isAdminOrOwner =
- currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN;
+ const isAdminOrOwner = org.role === MembershipRole.OWNER || org.role === MembershipRole.ADMIN;
- return isAdminOrOwner ? (
+ return !!isAdminOrOwner ? (
-
+
) : (
diff --git a/packages/features/ee/teams/components/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/AddNewTeamMembers.tsx
index e3508b3fee..95cbce921a 100644
--- a/packages/features/ee/teams/components/AddNewTeamMembers.tsx
+++ b/packages/features/ee/teams/components/AddNewTeamMembers.tsx
@@ -236,10 +236,8 @@ const PendingMemberItem = (props: { member: TeamMember; index: number; teamId: n
const { t } = useLocale();
const utils = trpc.useUtils();
const session = useSession();
+ const orgRole = session?.data?.user.org?.role;
const bookerUrl = member.bookerUrl;
- const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, {
- enabled: !!session.data?.user?.org,
- });
const removeMemberMutation = trpc.viewer.teams.removeMember.useMutation({
async onSuccess() {
await utils.viewer.teams.get.invalidate();
@@ -251,9 +249,7 @@ const PendingMemberItem = (props: { member: TeamMember; index: number; teamId: n
},
});
- const isOrgAdminOrOwner =
- currentOrg &&
- (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN);
+ const isOrgAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN;
return (
{
const router = useRouter();
const session = useSession();
+ const org = session?.data?.user.org;
const utils = trpc.useUtils();
const params = useParamsWithFallback();
@@ -91,9 +92,6 @@ const MembersView = () => {
const showDialog = searchParams?.get("inviteModal") === "true";
const [showMemberInvitationModal, setShowMemberInvitationModal] = useState(showDialog);
const [showInviteLinkSettingsModal, setInviteLinkSettingsModal] = useState(false);
- const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, {
- enabled: !!session.data?.user?.org,
- });
const { data: orgMembersNotInThisTeam, isPending: isOrgListLoading } =
trpc.viewer.organizations.getMembers.useQuery(
@@ -134,9 +132,7 @@ const MembersView = () => {
const isAdmin =
team && (team.membership.role === MembershipRole.OWNER || team.membership.role === MembershipRole.ADMIN);
- const isOrgAdminOrOwner =
- currentOrg &&
- (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN);
+ const isOrgAdminOrOwner = org?.role === MembershipRole.OWNER || org?.role === MembershipRole.ADMIN;
return (
<>
diff --git a/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx b/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx
index 15acf18b09..c2bb0d0c28 100644
--- a/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx
+++ b/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx
@@ -1,4 +1,5 @@
import { zodResolver } from "@hookform/resolvers/zod";
+import { useSession } from "next-auth/react";
import type { Dispatch } from "react";
import { useMemo } from "react";
import { Controller, useForm } from "react-hook-form";
@@ -55,6 +56,8 @@ export function EditForm({
}) {
const [setMutationLoading] = useEditMode((state) => [state.setMutationloading], shallow);
const { t } = useLocale();
+ const session = useSession();
+ const org = session?.data?.user?.org;
const utils = trpc.useUtils();
const form = useForm({
resolver: zodResolver(editSchema),
@@ -69,8 +72,7 @@ export function EditForm({
},
});
- const { data: currentMembership } = trpc.viewer.organizations.listCurrent.useQuery();
- const isOwner = currentMembership?.user.role === MembershipRole.OWNER;
+ const isOwner = org?.role === MembershipRole.OWNER;
const membershipOptions = useMemo(() => {
const options: MembershipOption[] = [