fix: admin menus dont show up for non admins now

This commit is contained in:
Damien Ostler 2024-03-03 16:23:40 -05:00
parent 8569290c0e
commit 23ea8eed79
2 changed files with 41 additions and 18 deletions

View File

@ -15,9 +15,15 @@ const navigation = (): VerticalNavItemsType => {
const [isStripeOnboarded, setIsStripeOnboarded] = useState(false); const [isStripeOnboarded, setIsStripeOnboarded] = useState(false);
const [profileData, setProfileData] = useState(null); const [profileData, setProfileData] = useState(null);
const [userData, setUserData] = useState(null); const [userData, setUserData] = useState(null);
const [isAdmin, setIsAdmin] = useState(false);
const getData = async () => { 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 onboardCheckRequest = await fetch('/api/artist/onboarded', { method: "GET" });
const onboardCheckResponse = await onboardCheckRequest.json(); const onboardCheckResponse = await onboardCheckRequest.json();
setIsStripeOnboarded(onboardCheckResponse["onboarded"]); setIsStripeOnboarded(onboardCheckResponse["onboarded"]);
@ -42,6 +48,23 @@ const navigation = (): VerticalNavItemsType => {
icon: HomeOutline, icon: HomeOutline,
path: '/dashboard' path: '/dashboard'
}, },
{
sectionTitle: 'General'
},
{
title: 'Account Settings',
icon: Settings,
path: '/dashboard/settings'
},
{
title: 'Your Requests',
icon: ListIcon,
path: '/dashboard/requests'
}
];
if (isAdmin) {
result.push(
{ {
sectionTitle: 'Admin' sectionTitle: 'Admin'
}, },
@ -60,20 +83,8 @@ const navigation = (): VerticalNavItemsType => {
icon: PeopleOutline, icon: PeopleOutline,
path: '/dashboard/admin/artists' path: '/dashboard/admin/artists'
}, },
{ );
sectionTitle: 'General'
},
{
title: 'Account Settings',
icon: Settings,
path: '/dashboard/settings'
},
{
title: 'Your Requests',
icon: ListIcon,
path: '/dashboard/requests'
} }
];
if (isStripeOnboarded) { if (isStripeOnboarded) {
result.push( result.push(

12
pages/api/admin/check.tsx Normal file
View File

@ -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({})
});