diff --git a/src/app/api/admin/prompts/[id]/approve/route.ts b/src/app/api/admin/prompts/[id]/approve/route.ts index fb86092..22a6601 100644 --- a/src/app/api/admin/prompts/[id]/approve/route.ts +++ b/src/app/api/admin/prompts/[id]/approve/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' -import { createServerSupabaseClient } from '@/lib/supabase-server' +import { auth } from '@/lib/auth' +import { headers } from 'next/headers' export async function POST( request: NextRequest, @@ -8,16 +9,17 @@ export async function POST( ) { const { id } = await params try { - const supabase = await createServerSupabaseClient() - const { data: { user: supabaseUser }, error: authError } = await supabase.auth.getUser() - - if (authError || !supabaseUser) { + const session = await auth.api.getSession({ + headers: await headers() + }) + + if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } // Check if user is admin const user = await prisma.user.findUnique({ - where: { id: supabaseUser.id }, + where: { id: session.user.id }, select: { isAdmin: true } }) diff --git a/src/app/api/admin/prompts/[id]/reject/route.ts b/src/app/api/admin/prompts/[id]/reject/route.ts index ee4c7c6..ccfa56c 100644 --- a/src/app/api/admin/prompts/[id]/reject/route.ts +++ b/src/app/api/admin/prompts/[id]/reject/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' -import { createServerSupabaseClient } from '@/lib/supabase-server' +import { auth } from '@/lib/auth' +import { headers } from 'next/headers' export async function POST( request: NextRequest, @@ -8,16 +9,17 @@ export async function POST( ) { const { id } = await params try { - const supabase = await createServerSupabaseClient() - const { data: { user: supabaseUser }, error: authError } = await supabase.auth.getUser() - - if (authError || !supabaseUser) { + const session = await auth.api.getSession({ + headers: await headers() + }) + + if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } // Check if user is admin const user = await prisma.user.findUnique({ - where: { id: supabaseUser.id }, + where: { id: session.user.id }, select: { isAdmin: true } }) diff --git a/src/app/api/admin/prompts/pending/route.ts b/src/app/api/admin/prompts/pending/route.ts index 3dd8cce..d295922 100644 --- a/src/app/api/admin/prompts/pending/route.ts +++ b/src/app/api/admin/prompts/pending/route.ts @@ -1,19 +1,21 @@ import { NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' -import { createServerSupabaseClient } from '@/lib/supabase-server' +import { auth } from '@/lib/auth' +import { headers } from 'next/headers' export async function GET() { try { - const supabase = await createServerSupabaseClient() - const { data: { user: supabaseUser }, error: authError } = await supabase.auth.getUser() - - if (authError || !supabaseUser) { + const session = await auth.api.getSession({ + headers: await headers() + }) + + if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } // Check if user is admin const user = await prisma.user.findUnique({ - where: { id: supabaseUser.id }, + where: { id: session.user.id }, select: { isAdmin: true } }) diff --git a/src/app/api/admin/stats/route.ts b/src/app/api/admin/stats/route.ts index 01e084e..6d2ca61 100644 --- a/src/app/api/admin/stats/route.ts +++ b/src/app/api/admin/stats/route.ts @@ -1,19 +1,21 @@ import { NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' -import { createServerSupabaseClient } from '@/lib/supabase-server' +import { auth } from '@/lib/auth' +import { headers } from 'next/headers' export async function GET() { try { - const supabase = await createServerSupabaseClient() - const { data: { user: supabaseUser }, error: authError } = await supabase.auth.getUser() - - if (authError || !supabaseUser) { + const session = await auth.api.getSession({ + headers: await headers() + }) + + if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } // Check if user is admin const user = await prisma.user.findUnique({ - where: { id: supabaseUser.id }, + where: { id: session.user.id }, select: { isAdmin: true } }) diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index 860d81e..e87d767 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -3,7 +3,7 @@ import { useState } from 'react' import Link from 'next/link' import { useTranslations } from 'next-intl' -import { useAuthUser } from '@/hooks/useAuthUser' +import { useBetterAuth } from '@/hooks/useBetterAuth' import { Button } from '@/components/ui/button' import { ThemeToggle, MobileThemeToggle } from '@/components/ui/theme-toggle' import { LanguageToggle, MobileLanguageToggle } from '@/components/ui/language-toggle' @@ -12,7 +12,7 @@ import { Logo } from '@/components/ui/logo' import { Menu, X } from 'lucide-react' export function Header() { - const { user, signOut } = useAuthUser() + const { user, signOut } = useBetterAuth() const t = useTranslations('navigation') const [mobileMenuOpen, setMobileMenuOpen] = useState(false) diff --git a/src/components/ui/user-avatar-dropdown.tsx b/src/components/ui/user-avatar-dropdown.tsx index 5679721..c2c0f7a 100644 --- a/src/components/ui/user-avatar-dropdown.tsx +++ b/src/components/ui/user-avatar-dropdown.tsx @@ -7,7 +7,7 @@ import { Button } from '@/components/ui/button' import { LegacyAvatar } from '@/components/ui/avatar' import { ChevronDown, User as UserIcon, LogOut, Settings, CreditCard, Receipt } from 'lucide-react' import { cn } from '@/lib/utils' -import { useAuthUser } from '@/hooks/useAuthUser' +import { useBetterAuth } from '@/hooks/useBetterAuth' import { useRouter } from 'next/navigation' interface UserAvatarDropdownProps { @@ -25,7 +25,7 @@ export function MobileUserMenu({ className }: UserAvatarDropdownProps) { const t = useTranslations('navigation') - const { isAdmin } = useAuthUser() + const { isAdmin } = useBetterAuth() const router = useRouter() const userName = user.name || user.email?.split('@')[0] || 'User' @@ -129,7 +129,7 @@ export function UserAvatarDropdown({ className }: UserAvatarDropdownProps) { const t = useTranslations('navigation') - const { isAdmin } = useAuthUser() + const { isAdmin } = useBetterAuth() const router = useRouter() const [isOpen, setIsOpen] = useState(false)