feat: allow verwalter role to act as admin in wizard
This commit is contained in:
@@ -199,7 +199,7 @@ export async function checkoutAction(params: {
|
||||
.eq('id', user.id)
|
||||
.single();
|
||||
|
||||
const isAdminUser = dbUser?.role === 'admin';
|
||||
const isAdminUser = dbUser?.role === 'admin' || dbUser?.role === 'verwaltung';
|
||||
if (!isAdminUser && !dbUser?.company_id) {
|
||||
throw new Error('Kein Unternehmen zugewiesen. Zugriff verweigert.');
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ export async function POST(request: Request) {
|
||||
.eq('id', user.id)
|
||||
.single();
|
||||
|
||||
const isAdminUser = dbUser?.role === 'admin';
|
||||
const isAdminUser = dbUser?.role === 'admin' || dbUser?.role === 'verwaltung';
|
||||
if (!isAdminUser && !dbUser?.company_id) {
|
||||
return NextResponse.json({ error: 'Firma erforderlich' }, { status: 403 });
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ async function OrderDataWrapper({
|
||||
.eq('id', user.id)
|
||||
.single()
|
||||
|
||||
const isAdmin = userData?.role === 'admin'
|
||||
const isAdmin = userData?.role === 'admin' || userData?.role === 'verwaltung'
|
||||
const hasCompany = !!userData?.company_id
|
||||
|
||||
if (!isAdmin && !hasCompany) {
|
||||
@@ -85,7 +85,7 @@ async function OrderDataWrapper({
|
||||
redirect('/order')
|
||||
}
|
||||
|
||||
const isAdmin = userData?.role === 'admin'
|
||||
const isAdmin = userData?.role === 'admin' || userData?.role === 'verwaltung'
|
||||
const isOwner = orderData.user_id === user.id
|
||||
const isCompanyMember = userData?.company_id && orderData.company_id === userData.company_id
|
||||
if (!isAdmin && !isOwner && !isCompanyMember) {
|
||||
@@ -104,7 +104,7 @@ async function OrderDataWrapper({
|
||||
|
||||
// Admin sees all end customers across partners
|
||||
let endCustomers = []
|
||||
if (userData?.role === 'admin') {
|
||||
if (userData?.role === 'admin' || userData?.role === 'verwaltung') {
|
||||
try {
|
||||
const adminClient = createAdminClient()
|
||||
const { data } = await adminClient
|
||||
@@ -134,7 +134,7 @@ async function OrderDataWrapper({
|
||||
|
||||
// Fetch companies list for admin
|
||||
let companies: any[] = []
|
||||
if (userData?.role === 'admin') {
|
||||
if (userData?.role === 'admin' || userData?.role === 'verwaltung') {
|
||||
companies = await getCompanies().catch(() => [])
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ async function OrderDataWrapper({
|
||||
initialProfile={profile}
|
||||
initialEndCustomers={endCustomers}
|
||||
initialOrder={initialOrder}
|
||||
isAdmin={userData?.role === 'admin'}
|
||||
isAdmin={userData?.role === 'admin' || userData?.role === 'verwaltung'}
|
||||
companies={companies}
|
||||
upgradeMode={mode === 'upgrade'}
|
||||
initialEndCustomerId={customerId || null}
|
||||
|
||||
@@ -39,7 +39,7 @@ export default async function OrderSuccessPage({
|
||||
if (error || !order) redirect('/')
|
||||
|
||||
// Berechtigung prüfen
|
||||
const isAdmin = dbUser?.role === 'admin'
|
||||
const isAdmin = dbUser?.role === 'admin' || dbUser?.role === 'verwaltung'
|
||||
const isOwner = order.user_id === user.id
|
||||
const isCompanyMember = dbUser?.company_id && order.company_id === dbUser.company_id
|
||||
|
||||
|
||||
Reference in New Issue
Block a user