Need help rendering a page if a user has a certain clearance in their session data
Unanswered
Pacific sand lance posted this in #help-forum
Pacific sand lanceOP
Hey i was trying to render certain page depending if a user session has
but it returns undefined when it clearly outputs the value afterwards
Here is my admin page.js & layout.js
My session output
isAdmin = truebut it returns undefined when it clearly outputs the value afterwards
Here is my admin page.js & layout.js
// /admin/page.js
"use client"
import AdminNav from "@/components/admincomponents/adminnavbar";
import Dashboard from "@/components/admincomponents/dashboard";
import { useSession } from "next-auth/react";
import { redirect } from "next/navigation";
export default function Admin() {
const {data: session, status} = useSession()
if (status === "authenticated") {
const boolAdmin = session?.user.isadmin
console.log('is Admin :', boolAdmin)
if(boolAdmin == true) {
return (
<AdminNav adminname={session?.user.fullname} />
)
}
return (
redirect('/')
)
}
}// /admin/layout.js
import '../globals.css'
import Favicon from '../../public/favicon.ico'
import localFont from 'next/font/local'
import { config } from '@fortawesome/fontawesome-svg-core'
import '@fortawesome/fontawesome-svg-core/styles.css'
import { getServerSession } from 'next-auth'
import SessProv from '@/components/SessionProvider'
require('dotenv').config()
config.autoAddCss = false
const myFont = localFont({ src: '../../public/fonts/Bicyclette-Bold.ttf' })
export const metadata = {
title: 'Admin',
description: 'description',
icons: [{ rel: 'icon', url: Favicon.src }]
}
export default async function AdminLayout({ children }) {
const session = await getServerSession()
return (
<html lang="en">
<body className={myFont.className}>
<SessProv session={session}>{children}</SessProv>
</body>
</html>
)
}My session output
is Admin : undefined
{
user: {
name: undefined,
email: 'email',
image: undefined,
username: 'lacrisun',
fullname: 'name',
phone: 'numbers',
isadmin: true
}
}