From a6eab74fd1bb9404fc1dbe00b949adf5034701aa Mon Sep 17 00:00:00 2001 From: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:58:34 +0530 Subject: [PATCH] feat: make org members list private (#13373) * feat: make org members list private * fix: add isOrg to MakeTeamPrivateSwitch in other-team-members-view --------- Co-authored-by: supalarry Co-authored-by: Peer Richelsen --- apps/web/public/static/locales/en/common.json | 2 ++ .../organizations/pages/settings/members.tsx | 21 ++++++++++++++++++- .../settings/other-team-members-view.tsx | 7 ++++++- .../components/MakeTeamPrivateSwitch.tsx | 8 ++++--- .../ee/teams/pages/team-members-view.tsx | 7 ++++++- 5 files changed, 39 insertions(+), 6 deletions(-) diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index f6e2cd88ac..a0f864523c 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1066,6 +1066,8 @@ "user_impersonation_description": "Allows our support team to temporarily sign in as you to help us quickly resolve any issues you report to us.", "team_impersonation_description": "Allows your team Owners/Admins to temporarily sign in as you.", "cal_signup_description":"Free for individuals. Team plans for collaborative features.", + "make_org_private": "Make organization private", + "make_org_private_description": "Your organization members won't be able to see other organization members when this is turned on.", "make_team_private": "Make team private", "make_team_private_description": "Your team members won't be able to see other team members when this is turned on.", "you_cannot_see_team_members": "You cannot see all the team members of a private team.", diff --git a/packages/features/ee/organizations/pages/settings/members.tsx b/packages/features/ee/organizations/pages/settings/members.tsx index 3e039f3274..e247b459ca 100644 --- a/packages/features/ee/organizations/pages/settings/members.tsx +++ b/packages/features/ee/organizations/pages/settings/members.tsx @@ -1,19 +1,38 @@ "use client"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; +import MakeTeamPrivateSwitch from "@calcom/features/ee/teams/components/MakeTeamPrivateSwitch"; import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; import { UserListTable } from "@calcom/features/users/components/UserTable/UserListTable"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { MembershipRole } from "@calcom/prisma/enums"; +import { trpc } from "@calcom/trpc/react"; import { Meta } from "@calcom/ui"; const MembersView = () => { const { t } = useLocale(); + const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(); + + const isInviteOpen = !currentOrg?.user.accepted; + const isOrgAdminOrOwner = + currentOrg && + (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN); return (
- + {((currentOrg?.isPrivate && isOrgAdminOrOwner) || isOrgAdminOrOwner || !currentOrg?.isPrivate) && ( + + )} + {currentOrg && isOrgAdminOrOwner && ( + + )}
); diff --git a/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx b/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx index a40a233fe4..a120a6a25c 100644 --- a/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx +++ b/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx @@ -192,7 +192,12 @@ const MembersView = () => { {team && ( <>
- + )} diff --git a/packages/features/ee/teams/components/MakeTeamPrivateSwitch.tsx b/packages/features/ee/teams/components/MakeTeamPrivateSwitch.tsx index 26450caf97..c04d0a728d 100644 --- a/packages/features/ee/teams/components/MakeTeamPrivateSwitch.tsx +++ b/packages/features/ee/teams/components/MakeTeamPrivateSwitch.tsx @@ -8,10 +8,12 @@ const MakeTeamPrivateSwitch = ({ teamId, isPrivate, disabled, + isOrg, }: { teamId: number; isPrivate: boolean; disabled: boolean; + isOrg: boolean; }) => { const { t } = useLocale(); @@ -23,7 +25,7 @@ const MakeTeamPrivateSwitch = ({ }, async onSuccess() { await utils.viewer.teams.get.invalidate(); - showToast(t("your_team_updated_successfully"), "success"); + showToast(t(isOrg ? "your_org_updated_successfully" : "your_team_updated_successfully"), "success"); }, }); @@ -33,9 +35,9 @@ const MakeTeamPrivateSwitch = ({ <> { setTeamPrivate(checked); diff --git a/packages/features/ee/teams/pages/team-members-view.tsx b/packages/features/ee/teams/pages/team-members-view.tsx index fdc061188b..ac19cba475 100644 --- a/packages/features/ee/teams/pages/team-members-view.tsx +++ b/packages/features/ee/teams/pages/team-members-view.tsx @@ -194,7 +194,12 @@ const MembersView = () => { )} {team && (isAdmin || isOrgAdminOrOwner) && ( - + )} {showMemberInvitationModal && team && (