fix: add /setup/unresolved to exempt paths and improve error handling

- Add /setup/unresolved to EXEMPT_PATHS to allow access after initial setup
- Handle 401 Unauthorized response in loading page (clear invalid token)
- Add console.log statements for debugging setup flow issues
This commit is contained in:
2026-06-06 20:37:11 +02:00
parent ac5ee3bb27
commit ac7302b1dd
2 changed files with 13 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ class SetupRedirectMiddleware(BaseHTTPMiddleware):
# Paths that should always be accessible, even without setup # Paths that should always be accessible, even without setup
EXEMPT_PATHS = { EXEMPT_PATHS = {
"/setup", # Setup page itself "/setup", # Setup page itself
"/setup/unresolved", # Unresolved folders page (after setup)
"/loading", # Loading page (initialization progress) "/loading", # Loading page (initialization progress)
"/login", # Login page (needs to be accessible after setup) "/login", # Login page (needs to be accessible after setup)
"/queue", # Queue page (for initial load) "/queue", # Queue page (for initial load)

View File

@@ -481,8 +481,10 @@
async function checkUnresolvedAndProceed() { async function checkUnresolvedAndProceed() {
try { try {
const token = localStorage.getItem('auth_token'); const token = localStorage.getItem('auth_token');
console.log('Checking unresolved folders, token exists:', !!token);
if (!token) { if (!token) {
// No token, go to login // No token, go to login
console.log('No auth token found, showing completion');
document.getElementById('completionMessage').style.display = 'block'; document.getElementById('completionMessage').style.display = 'block';
return; return;
} }
@@ -490,20 +492,30 @@
const res = await fetch('/api/setup/unresolved', { const res = await fetch('/api/setup/unresolved', {
headers: { 'Authorization': `Bearer ${token}` } headers: { 'Authorization': `Bearer ${token}` }
}); });
console.log('Unresolved API response status:', res.status);
if (res.ok) { if (res.ok) {
const unresolved = await res.json(); const unresolved = await res.json();
console.log('Unresolved folders:', unresolved);
if (unresolved && unresolved.length > 0) { if (unresolved && unresolved.length > 0) {
// Has unresolved folders - redirect to unresolved page // Has unresolved folders - redirect to unresolved page
console.log('Redirecting to /setup/unresolved');
window.location.href = '/setup/unresolved'; window.location.href = '/setup/unresolved';
return; return;
} }
} else if (res.status === 401) {
// Token invalid, clear it
localStorage.removeItem('auth_token');
console.log('Token invalid, showing completion');
document.getElementById('completionMessage').style.display = 'block';
return;
} }
} catch (e) { } catch (e) {
console.error('Error checking unresolved folders:', e); console.error('Error checking unresolved folders:', e);
} }
// No unresolved folders or error - show completion message // No unresolved folders or error - show completion message
console.log('No unresolved folders or error, showing completion');
document.getElementById('completionMessage').style.display = 'block'; document.getElementById('completionMessage').style.display = 'block';
} }