2026-03-15 21:07:22 +00:00
|
|
|
// routes/roles.js
|
2026-03-15 20:07:14 +00:00
|
|
|
const express = require('express');
|
|
|
|
|
const router = express.Router();
|
|
|
|
|
const requireRole = require('../middleware/requireRole');
|
|
|
|
|
|
2026-03-15 21:07:22 +00:00
|
|
|
// Mock roles database (in real app, this would be a real DB)
|
|
|
|
|
const roles = [
|
|
|
|
|
{ id: 1, name: 'user', description: 'Standard user role' },
|
|
|
|
|
{ id: 2, name: 'moderator', description: 'Moderation role' },
|
|
|
|
|
{ id: 3, name: 'admin', description: 'Administrator role' }
|
|
|
|
|
];
|
2026-03-15 20:07:14 +00:00
|
|
|
|
2026-03-15 21:07:22 +00:00
|
|
|
// Get all roles (requires admin)
|
|
|
|
|
router.get('/', requireRole(['admin']), (req, res) => {
|
|
|
|
|
res.json(roles);
|
|
|
|
|
});
|
2026-03-15 20:07:14 +00:00
|
|
|
|
2026-03-15 21:07:22 +00:00
|
|
|
// Get role by ID (requires admin)
|
|
|
|
|
router.get('/:id', requireRole(['admin']), (req, res) => {
|
|
|
|
|
const role = roles.find(r => r.id === parseInt(req.params.id));
|
|
|
|
|
if (!role) {
|
|
|
|
|
return res.status(404).json({ error: 'Role not found' });
|
2026-03-15 20:07:14 +00:00
|
|
|
}
|
2026-03-15 21:07:22 +00:00
|
|
|
res.json(role);
|
2026-03-15 20:07:14 +00:00
|
|
|
});
|
|
|
|
|
|
2026-03-15 21:07:22 +00:00
|
|
|
// Update role permissions (requires admin)
|
|
|
|
|
router.put('/:id', requireRole(['admin']), (req, res) => {
|
|
|
|
|
const roleIndex = roles.findIndex(r => r.id === parseInt(req.params.id));
|
|
|
|
|
if (roleIndex === -1) {
|
|
|
|
|
return res.status(404).json({ error: 'Role not found' });
|
2026-03-15 20:07:14 +00:00
|
|
|
}
|
2026-03-15 21:07:22 +00:00
|
|
|
|
|
|
|
|
const { name, description } = req.body;
|
|
|
|
|
if (name) roles[roleIndex].name = name;
|
|
|
|
|
if (description) roles[roleIndex].description = description;
|
|
|
|
|
|
|
|
|
|
res.json(roles[roleIndex]);
|
2026-03-15 20:07:14 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
module.exports = router;
|