From 490bb11771eb4779cb552df42c1e9943156399e5 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Thu, 22 Feb 2024 22:21:11 -0800 Subject: [PATCH] fix create website / teams permissions --- .../teams/[teamId]/members/TeamMembersPage.tsx | 6 +++--- .../settings/teams/[teamId]/team/TeamDetails.tsx | 6 +++--- .../teams/[teamId]/websites/TeamWebsitesPage.tsx | 11 ++++++----- .../(main)/settings/websites/WebsitesSettingsPage.tsx | 7 ++++++- src/app/(main)/websites/WebsitesPage.tsx | 7 ++----- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx b/src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx index a8159891..3c166826 100644 --- a/src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx +++ b/src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx @@ -11,9 +11,9 @@ export function TeamMembersPage({ teamId }: { teamId: string }) { const { user } = useLogin(); const { formatMessage, labels } = useMessages(); - const canEdit = team?.teamUser?.find( - ({ userId, role }) => role === ROLES.teamOwner && userId === user.id, - ); + const canEdit = + team?.teamUser?.find(({ userId, role }) => role === ROLES.teamOwner && userId === user.id) && + user.role !== ROLES.viewOnly; return ( <> diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx b/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx index 0ce43fec..9d8ea529 100644 --- a/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx +++ b/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx @@ -15,9 +15,9 @@ export function TeamDetails({ teamId }: { teamId: string }) { const { user } = useLogin(); const [tab, setTab] = useState('details'); - const canEdit = !!team?.teamUser?.find( - ({ userId, role }) => role === ROLES.teamOwner && userId === user.id, - ); + const canEdit = + !!team?.teamUser?.find(({ userId, role }) => role === ROLES.teamOwner && userId === user.id) && + user.role !== ROLES.viewOnly; return ( diff --git a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx b/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx index c5092c8b..882ef8ec 100644 --- a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx +++ b/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx @@ -12,16 +12,17 @@ export function TeamWebsitesPage({ teamId }: { teamId: string }) { const { formatMessage, labels } = useMessages(); const { user } = useLogin(); - const allowEdit = !!team?.teamUser?.find( - ({ userId, role }) => userId === user.id && role !== ROLES.teamViewOnly, - ); + const canEdit = + !!team?.teamUser?.find( + ({ userId, role }) => userId === user.id && role !== ROLES.teamViewOnly, + ) && user.role !== ROLES.viewOnly; return ( <> - {allowEdit && } + {canEdit && } - + ); } diff --git a/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx index 14411da1..ff0938d1 100644 --- a/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx +++ b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx @@ -1,11 +1,16 @@ 'use client'; +import { useLogin } from 'components/hooks'; import WebsitesDataTable from './WebsitesDataTable'; import WebsitesHeader from './WebsitesHeader'; +import { ROLES } from 'lib/constants'; export default function WebsitesSettingsPage({ teamId }: { teamId: string }) { + const { user } = useLogin(); + const canCreate = user.role !== ROLES.viewOnly; + return ( <> - + ); diff --git a/src/app/(main)/websites/WebsitesPage.tsx b/src/app/(main)/websites/WebsitesPage.tsx index 75776c4c..8d8ee2e2 100644 --- a/src/app/(main)/websites/WebsitesPage.tsx +++ b/src/app/(main)/websites/WebsitesPage.tsx @@ -1,14 +1,11 @@ 'use client'; import WebsitesHeader from 'app/(main)/settings/websites/WebsitesHeader'; import WebsitesDataTable from 'app/(main)/settings/websites/WebsitesDataTable'; -import { useLogin } from 'components/hooks'; - -export default function WebsitesPage({ teamId }: { teamId: string; userId: string }) { - const { user } = useLogin(); +export default function WebsitesPage({ teamId }: { teamId: string }) { return ( <> - + );