aboutsummaryrefslogtreecommitdiff
path: root/src/app/settings/page.tsx
blob: 75d9d3d74c74b344a4c108b6fabbe93256fac0c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { getServerSession } from "next-auth"
import { redirect } from "next/navigation"
import dbConnect from "@/lib/mongodb"
import User from "@/model/User"
import { authOptions } from "@/lib/auth"
import SettingsContent from "./settings-content"

export default async function SettingsPage() {
  const session = await getServerSession(authOptions)

  if (!session?.user?.email) {
    redirect("/login")
  }

  await dbConnect()
  const user = await User.findOne({ email: session.user.email }).lean() as any

  if (!user) {
    redirect("/login")
  }

  // Sanitize user object for client component
  const initialUser = {
    name: user.name,
    email: user.email,
    image: user.profileImage?.url || null,
    twoFactorEnabled: !!user.twoFactorEnabled,
  }

  return <SettingsContent initialUser={initialUser} />
}