diff --git a/services/arbiter-3.0/src/routes/admin.js b/services/arbiter-3.0/src/routes/admin.js index ece729e..44c4add 100644 --- a/services/arbiter-3.0/src/routes/admin.js +++ b/services/arbiter-3.0/src/routes/admin.js @@ -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)) {