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,35 +33,45 @@ export default function AdminSettings() {
useEffect(() => { useEffect(() => {
async function checkAccess() { async function checkAccess() {
const supabase = createClient(); try {
const { data: { user } } = await supabase.auth.getUser(); const supabase = createClient();
if (!user) { const { data: { user } } = await supabase.auth.getUser();
router.push('/auth/login'); if (!user) {
return; router.push('/auth/login');
} return;
const { data: userData } = await supabase }
.from('users') const { data: userData, error: userError } = await supabase
.select('role') .from('users')
.eq('id', user.id) .select('role')
.single(); .eq('id', user.id)
if (!userData || userData.role === 'verwaltung') { .single();
router.push('/admin');
} else { if (userError || !userData || userData.role === 'verwaltung') {
router.push('/admin');
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')
.single(); .single();
if (licRow) { if (licRow) {
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();