fix(admin): wrap access check in try-catch to prevent loader hanging
All checks were successful
Staging Build / build (push) Successful in 2m57s

This commit is contained in:
DanielS
2026-07-14 23:52:04 +02:00
parent 1b49348577
commit a318a5e225

View File

@@ -33,27 +33,30 @@ export default function AdminSettings() {
useEffect(() => { useEffect(() => {
async function checkAccess() { async function checkAccess() {
try {
const supabase = createClient(); const supabase = createClient();
const { data: { user } } = await supabase.auth.getUser(); const { data: { user } } = await supabase.auth.getUser();
if (!user) { if (!user) {
router.push('/auth/login'); router.push('/auth/login');
return; return;
} }
const { data: userData } = await supabase const { data: userData, error: userError } = await supabase
.from('users') .from('users')
.select('role') .select('role')
.eq('id', user.id) .eq('id', user.id)
.single(); .single();
if (!userData || userData.role === 'verwaltung') {
if (userError || !userData || userData.role === 'verwaltung') {
router.push('/admin'); router.push('/admin');
} else { return;
}
const state = localStorage.getItem('demo_banner_disabled') !== 'true'; const state = localStorage.getItem('demo_banner_disabled') !== 'true';
setDemoActive(state); setDemoActive(state);
setLoading(false);
// Load current LicServer config from DB // Load current LicServer config from DB
const supabaseClient = createClient(); try {
const { data: licRow } = await supabaseClient const { data: licRow } = await supabase
.from('settings') .from('settings')
.select('licserver_base_url, licserver_api_key') .select('licserver_base_url, licserver_api_key')
.eq('id', 'licserver') .eq('id', 'licserver')
@@ -62,6 +65,13 @@ export default function AdminSettings() {
setLicUrl(licRow.licserver_base_url || ''); setLicUrl(licRow.licserver_base_url || '');
setLicKey(licRow.licserver_api_key || ''); setLicKey(licRow.licserver_api_key || '');
} }
} catch (dbErr) {
console.error("Fehler beim Laden der LicServer-Einstellungen:", dbErr);
}
} catch (err) {
console.error("Fehler bei checkAccess in Einstellungen:", err);
} finally {
setLoading(false);
} }
} }
checkAccess(); checkAccess();