feat: handle redirects for admin in /order page and implement next query param on login
All checks were successful
Staging Build / build (push) Successful in 2m19s

This commit is contained in:
DanielS
2026-06-24 00:29:46 +02:00
parent 615b0719f1
commit a56eb93ffc
2 changed files with 29 additions and 10 deletions

View File

@@ -31,19 +31,36 @@ async function OrderDataWrapper() {
const { data: { user } } = await supabase.auth.getUser()
if (!user) {
redirect('/auth/login')
redirect('/auth/login?next=/order')
}
const products = await getProducts()
const categories = await getCategories()
const endCustomers = await getEndCustomers()
// Fetch profile if exists
const { data: profile } = await supabase
.from('profiles')
.select('*')
// Check user role
const { data: userData } = await supabase
.from('users')
.select('role')
.eq('id', user.id)
.single()
if (userData?.role === 'admin') {
redirect('/admin/einstellungen')
}
const products = await getProducts().catch(() => [])
const categories = await getCategories().catch(() => [])
const endCustomers = await getEndCustomers().catch(() => [])
// Fetch profile safely using maybeSingle
let profile = null
try {
const { data } = await supabase
.from('profiles')
.select('*')
.eq('id', user.id)
.maybeSingle()
profile = data
} catch (e) {
console.error('Fehler beim Laden des Profils:', e)
}
return <OrderWizard products={products} categories={categories} initialProfile={profile} initialEndCustomers={endCustomers} />
}

View File

@@ -31,12 +31,14 @@ export function LoginForm({
setIsLoading(true);
setError(null);
const nextParam = typeof window !== 'undefined' ? new URLSearchParams(window.location.search).get('next') : null;
try {
const res = await signIn(email, password);
if (res.role === "admin") {
router.push("/admin/einstellungen");
} else {
router.push("/my-customers");
router.push(nextParam || "/my-customers");
}
} catch (error: unknown) {
setError(error instanceof Error ? error.message : "An error occurred");