fix: add missing admin module routes (servers, players, roles, grace, audit, financials)
ISSUE: Clicking on sidebar links returned 'Cannot GET /admin/servers' etc Only dashboard route existed in admin.js FIX (per Gemini consultation): Added 6 missing module routes: - /servers -> admin/servers/index.ejs - /players -> admin/players/index.ejs - /roles -> admin/roles/index.ejs - /grace -> admin/grace/index.ejs - /audit -> admin/audit/index.ejs - /financials -> admin/financials/index.ejs Each route passes required template vars: title, adminUser, csrfToken, currentPath TESTING: Click each sidebar link - should render module page Credit: Gemini consultation - identified missing routes Signed-off-by: Claude (Chronicler #57) <claude@firefrostgaming.com>
This commit is contained in:
@@ -27,6 +27,98 @@ router.get('/', isAdmin, async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Server Matrix Module
|
||||
router.get('/servers', isAdmin, async (req, res) => {
|
||||
try {
|
||||
res.render('admin/servers/index', {
|
||||
title: 'Server Matrix',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
currentPath: '/servers'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Server matrix error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
// Player Management Module
|
||||
router.get('/players', isAdmin, async (req, res) => {
|
||||
try {
|
||||
res.render('admin/players/index', {
|
||||
title: 'Player Management',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
currentPath: '/players'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Player management error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
// Role Management Module
|
||||
router.get('/roles', isAdmin, async (req, res) => {
|
||||
try {
|
||||
const mappings = getRoleMappings();
|
||||
res.render('admin/roles/index', {
|
||||
title: 'Role Management',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
mappings: mappings,
|
||||
currentPath: '/roles'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Role management error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
// Grace Period Management Module
|
||||
router.get('/grace', isAdmin, async (req, res) => {
|
||||
try {
|
||||
res.render('admin/grace/index', {
|
||||
title: 'Grace Period Management',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
currentPath: '/grace'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Grace period management error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
// Audit Log Module
|
||||
router.get('/audit', isAdmin, async (req, res) => {
|
||||
try {
|
||||
res.render('admin/audit/index', {
|
||||
title: 'Audit Log',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
currentPath: '/audit'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Audit log error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
// Financials Module
|
||||
router.get('/financials', isAdmin, async (req, res) => {
|
||||
try {
|
||||
res.render('admin/financials/index', {
|
||||
title: 'Financials',
|
||||
adminUser: req.user,
|
||||
csrfToken: req.csrfToken(),
|
||||
currentPath: '/financials'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Financials error:', error);
|
||||
res.status(500).send('Internal Server Error: ' + error.message);
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/mappings', isAdmin, express.json(), (req, res) => {
|
||||
const newMappings = req.body;
|
||||
if (saveRoleMappings(newMappings)) {
|
||||
|
||||
Reference in New Issue
Block a user