Fixed some things

This commit is contained in:
m0rph3us1987
2026-02-22 17:38:38 +01:00
parent 3eb654a354
commit 6127bfbeb2

View File

@@ -202,7 +202,7 @@ apiRouter.get('/state', async (req, res) => {
state.isStarted = state.config.isStarted === 'true'; state.isStarted = state.config.isStarted === 'true';
db.all("SELECT id, name, isAdmin, isDisabled FROM teams", (err, teams) => { db.all("SELECT id, name, isAdmin, isDisabled FROM teams", (err, teams) => {
if (err) return res.status(500).json({ error: 'Failed to fetch teams' }); if (err) return res.status(500).json({ error: 'Failed to fetch teams' });
state.teams = teams || []; state.teams = teamId ? (teams || []) : [];
db.all("SELECT * FROM challenges", (err, challenges) => { db.all("SELECT * FROM challenges", (err, challenges) => {
if (err) return res.status(500).json({ error: 'Failed to fetch challenges' }); if (err) return res.status(500).json({ error: 'Failed to fetch challenges' });
db.all("SELECT * FROM solves", (err, solves) => { db.all("SELECT * FROM solves", (err, solves) => {
@@ -211,18 +211,22 @@ apiRouter.get('/state', async (req, res) => {
if (err) return res.status(500).json({ error: 'Failed to fetch blogs' }); if (err) return res.status(500).json({ error: 'Failed to fetch blogs' });
state.solves = solves || []; state.solves = solves || [];
state.blogs = blogs || []; state.blogs = blogs || [];
state.challenges = (challenges || []).map(c => { if (!teamId || (!isAdmin && !state.isStarted)) {
const enriched = { state.challenges = [];
...c, } else {
files: JSON.parse(c.files || '[]'), state.challenges = (challenges || []).map(c => {
solves: state.solves.filter(s => s.challengeId === c.id).map(s => s.teamId) const enriched = {
}; ...c,
// CRITICAL SECURITY FIX: Hide flag if not admin files: JSON.parse(c.files || '[]'),
if (!isAdmin) { solves: state.solves.filter(s => s.challengeId === c.id).map(s => s.teamId)
delete enriched.flag; };
} // CRITICAL SECURITY FIX: Hide flag if not admin
return enriched; if (!isAdmin) {
}); delete enriched.flag;
}
return enriched;
});
}
res.json(state); res.json(state);
}); });
}); });