This commit is contained in:
rgrgogu
2026-05-06 14:15:04 +08:00
parent a8f10a25d7
commit d5fcc574a4
12 changed files with 389 additions and 219 deletions
+17 -16
View File
@@ -24,8 +24,8 @@
* Author: rgrgogu
* Date Created: Oct. 6, 2025
***********************************************************************************************************************************************************************/
const express = require('express');
const router = express.Router();
const express = require('express');
const router = express.Router();
const usersCtrl = require('../../controllers/admin/users.controller');
const { authenticate } = require('../../middleware/auth.middleware');
@@ -36,28 +36,29 @@ const { adminLimiter, sensitiveOpsLimiter } = require('../../middleware/rateLimi
router.use(authenticate, requireAdmin(), adminLimiter);
// ── User management ────────────────────────────────────────────────────────────
router.get('/users', usersCtrl.getUsers);
router.get('/users/:id', usersCtrl.getUser);
router.put('/users/:id', sensitiveOpsLimiter, usersCtrl.updateUser);
router.delete('/users/:id', sensitiveOpsLimiter, usersCtrl.deactivateUser); // soft delete
router.get('/users/field-values', usersCtrl.getUserFieldValues); // ← before /:id
router.get('/users', usersCtrl.getUsers);
router.get('/users/:id', usersCtrl.getUser);
router.put('/users/:id', sensitiveOpsLimiter, usersCtrl.updateUser);
router.delete('/users/:id', sensitiveOpsLimiter, usersCtrl.deactivateUser); // soft delete
router.post('/users/:id/restore', sensitiveOpsLimiter, usersCtrl.restoreUser); // restore
// ── Session management ─────────────────────────────────────────────────────────
router.get('/users/:id/sessions', usersCtrl.getUserSessions);
router.get('/users/:id/sessions', usersCtrl.getUserSessions);
router.delete('/users/:id/sessions/:sid', sensitiveOpsLimiter, usersCtrl.terminateSession);
// ─── Groups Management ───────────────────────────────────────────────────────────────
router.get('/groups', usersCtrl.getGroups);
router.get('/groups/:gid', usersCtrl.getGroup);
router.post('/groups', sensitiveOpsLimiter, usersCtrl.createGroup);
router.put('/groups/:gid', sensitiveOpsLimiter, usersCtrl.updateGroup);
router.get('/groups', usersCtrl.getGroups);
router.get('/groups/:gid', usersCtrl.getGroup);
router.post('/groups', sensitiveOpsLimiter, usersCtrl.createGroup);
router.put('/groups/:gid', sensitiveOpsLimiter, usersCtrl.updateGroup);
router.patch('/groups/:gid/deactivate', sensitiveOpsLimiter, usersCtrl.deactivateGroup);
router.patch('/groups/:gid/restore', sensitiveOpsLimiter, usersCtrl.restoreGroup);
router.patch('/groups/:gid/restore', sensitiveOpsLimiter, usersCtrl.restoreGroup);
// ─── Group membership ──────────────────────────────────────────────────────────
router.get('/groups/:gid/users', usersCtrl.getUsersInGroup);
router.get('/groups/:gid/users/add', usersCtrl.getUsersNotInGroup);
router.post('/groups/:gid/users', sensitiveOpsLimiter, usersCtrl.addUserToGroup);
router.delete('/groups/:gid/users', sensitiveOpsLimiter, usersCtrl.removeUserFromGroup);
router.get('/groups/:gid/users', usersCtrl.getUsersInGroup);
router.get('/groups/:gid/users/add', usersCtrl.getUsersNotInGroup);
router.post('/groups/:gid/users', sensitiveOpsLimiter, usersCtrl.addUserToGroup);
router.delete('/groups/:gid/users', sensitiveOpsLimiter, usersCtrl.removeUserFromGroup);
module.exports = router;