Add /api/debug/auth-logic endpoint
Deploy Standortplaner / deploy (push) Successful in 16s
Details
Deploy Standortplaner / deploy (push) Successful in 16s
Details
This commit is contained in:
parent
d5dd3a4d59
commit
4659562b1d
44
server.js
44
server.js
|
|
@ -255,6 +255,50 @@ app.get('/api/debug/db-projekte', async (req, res) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get('/api/debug/auth-logic', async (req, res) => {
|
||||||
|
const auth = getAllowedProjects(req);
|
||||||
|
let debugInfo = {
|
||||||
|
auth_object: auth,
|
||||||
|
projects_returned: [],
|
||||||
|
sql_used: "",
|
||||||
|
originalIds: [],
|
||||||
|
normalizedNames: []
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!auth) {
|
||||||
|
return res.json(debugInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
const client = await pool.connect();
|
||||||
|
try {
|
||||||
|
if (auth.projects.includes('*')) {
|
||||||
|
debugInfo.sql_used = "SELECT * (Wildcard)";
|
||||||
|
const result = await client.query('SELECT id, name FROM geodaten.projekte ORDER BY name');
|
||||||
|
debugInfo.projects_returned = result.rows;
|
||||||
|
} else if (auth.projects.length > 0) {
|
||||||
|
const originalIds = auth.projects.filter(p => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(p));
|
||||||
|
const normalizedNames = auth.projects.map(p => p.toLowerCase().replace(/[-_ ]/g, '').trim());
|
||||||
|
debugInfo.originalIds = originalIds;
|
||||||
|
debugInfo.normalizedNames = normalizedNames;
|
||||||
|
debugInfo.sql_used = "SELECT WHERE id = ANY OR normalized_name = ANY";
|
||||||
|
const result = await client.query(
|
||||||
|
`SELECT id, name FROM geodaten.projekte
|
||||||
|
WHERE id::text = ANY($1::text[])
|
||||||
|
OR LOWER(REPLACE(REPLACE(REPLACE(name, '-', ''), '_', ''), ' ', '')) = ANY($2::text[])
|
||||||
|
ORDER BY name`,
|
||||||
|
[originalIds, normalizedNames]
|
||||||
|
);
|
||||||
|
debugInfo.projects_returned = result.rows;
|
||||||
|
}
|
||||||
|
res.json(debugInfo);
|
||||||
|
} catch (err) {
|
||||||
|
debugInfo.error = err.message;
|
||||||
|
res.status(500).json(debugInfo);
|
||||||
|
} finally {
|
||||||
|
client.release();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
app.get('/api/logs', (req, res) => {
|
app.get('/api/logs', (req, res) => {
|
||||||
res.type('text/plain').send(serverLogs.join('\n'));
|
res.type('text/plain').send(serverLogs.join('\n'));
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue