Files
reformix-hackaton/mvp/b2c/src/lib/auth/current-user.ts
2026-05-30 19:39:31 +02:00

26 lines
723 B
TypeScript

import { redirect } from 'next/navigation';
import { getSessionUser } from './session';
import { resolveTenantId, type AuthUser } from './authz';
export async function getCurrentUser(): Promise<AuthUser | null> {
return getSessionUser();
}
export async function requireUser(): Promise<AuthUser> {
const user = await getSessionUser();
if (!user) redirect('/login');
return user;
}
export async function requireAdmin(): Promise<AuthUser> {
const user = await getSessionUser();
if (!user) redirect('/login');
if (user.role !== 'admin') redirect('/panel');
return user;
}
export async function getCurrentTenantId(): Promise<string> {
const user = await getSessionUser();
return resolveTenantId(user);
}