From 23ea8eed79ae8bb3bd3e2fff3a7ec98dadf488f4 Mon Sep 17 00:00:00 2001 From: Damien Ostler Date: Sun, 3 Mar 2024 16:23:40 -0500 Subject: [PATCH] fix: admin menus dont show up for non admins now --- navigation/vertical/index.ts | 47 ++++++++++++++++++++++-------------- pages/api/admin/check.tsx | 12 +++++++++ 2 files changed, 41 insertions(+), 18 deletions(-) create mode 100644 pages/api/admin/check.tsx diff --git a/navigation/vertical/index.ts b/navigation/vertical/index.ts index 2d9a436..8e1600c 100644 --- a/navigation/vertical/index.ts +++ b/navigation/vertical/index.ts @@ -15,9 +15,15 @@ const navigation = (): VerticalNavItemsType => { const [isStripeOnboarded, setIsStripeOnboarded] = useState(false); const [profileData, setProfileData] = useState(null); const [userData, setUserData] = useState(null); + const [isAdmin, setIsAdmin] = useState(false); const getData = async () => { + const adminCheck = await fetch('/api/admin/check', { method: "GET" }); + if (adminCheck.status === 200) { + setIsAdmin(true); + } + const onboardCheckRequest = await fetch('/api/artist/onboarded', { method: "GET" }); const onboardCheckResponse = await onboardCheckRequest.json(); setIsStripeOnboarded(onboardCheckResponse["onboarded"]); @@ -42,24 +48,6 @@ const navigation = (): VerticalNavItemsType => { icon: HomeOutline, path: '/dashboard' }, - { - sectionTitle: 'Admin' - }, - { - title: 'Manage Artist Access', - icon: LockPerson, - path: '/dashboard/admin/requests' - }, - { - title: 'Manage Users', - icon: People, - path: '/dashboard/admin/users' - }, - { - title: 'Manage Artists', - icon: PeopleOutline, - path: '/dashboard/admin/artists' - }, { sectionTitle: 'General' }, @@ -75,6 +63,29 @@ const navigation = (): VerticalNavItemsType => { } ]; + if (isAdmin) { + result.push( + { + sectionTitle: 'Admin' + }, + { + title: 'Manage Artist Access', + icon: LockPerson, + path: '/dashboard/admin/requests' + }, + { + title: 'Manage Users', + icon: People, + path: '/dashboard/admin/users' + }, + { + title: 'Manage Artists', + icon: PeopleOutline, + path: '/dashboard/admin/artists' + }, + ); + } + if (isStripeOnboarded) { result.push( { diff --git a/pages/api/admin/check.tsx b/pages/api/admin/check.tsx new file mode 100644 index 0000000..0d87172 --- /dev/null +++ b/pages/api/admin/check.tsx @@ -0,0 +1,12 @@ +import { getAccessToken, withApiAuthRequired, getSession } from '@auth0/nextjs-auth0'; + +export default withApiAuthRequired(async function handler(req, res) { + const { accessToken } = await getAccessToken(req, res); + const response = await fetch(process.env.NEXT_PUBLIC_API_URL+'/api/admin/AdminArtistRequests', { + headers: { + "Authorization": `Bearer ${accessToken}` + } + }); + res.status(response.status).json({}) +}); +