import { withIronSession, Handler } from 'next-iron-session' import { getBaseURL } from '../helpers/url' const SESSION_SECRET = process.env.SESSION_SECRET || 'dev-env-default-secret-991823723' export default function withSession(handler: Handler) { return withIronSession(handler, { password: SESSION_SECRET, cookieName: 'pfadi-bussle-cookie', cookieOptions: { // the next line allows to use the session in non-https environements like // Next.js dev mode (http://localhost:3000) secure: process.env.NODE_ENV === 'production', path: '/admin', }, }) } export const isAdminSession = function (req: any, res: any) { const user = req?.session.get('user') if (user && user.role === 'admin') { return user } const redirectTargetUrl = `${getBaseURL()}/admin/login?redirect=${encodeURIComponent( req.url )}` res.writeHead(303, { Location: redirectTargetUrl, }) res.end() return false }