mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
33 lines
1.6 KiB
JavaScript
33 lines
1.6 KiB
JavaScript
/***********************************************************************************************************************************************************************
|
|
* File Name: staff.routes.js
|
|
* Type of Program: Router
|
|
* Description: Protected routes accessible by staff and admin only.
|
|
* Staff can view non-admin users and toggle their status.
|
|
* Staff cannot view or modify admins.
|
|
*
|
|
* Route Map:
|
|
* GET /api/staff/users → paginated user list (non-admins)
|
|
* GET /api/staff/users/:id → view a specific non-admin user
|
|
* PUT /api/staff/users/:id/status → activate or deactivate a user
|
|
* GET /api/staff/users/:id/sessions → view user's sessions
|
|
*
|
|
* Guards: authenticate → requireStaff()
|
|
*
|
|
* Author: rgrgogu
|
|
* Date Created: Oct. 6, 2025
|
|
***********************************************************************************************************************************************************************/
|
|
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const usersCtrl = require('../../controllers/staff/users.controller');
|
|
const { authenticate } = require('../../middleware/auth.middleware');
|
|
const { requireStaff } = require('../../middleware/rbac.middleware');
|
|
|
|
router.use(authenticate, requireStaff());
|
|
|
|
router.get('/users/', usersCtrl.getUsers);
|
|
router.get('/users/:id', usersCtrl.getUser);
|
|
router.put('/users/:id/status', usersCtrl.setUserStatus);
|
|
router.get('/users/:id/sessions', usersCtrl.getUserSessions);
|
|
|
|
module.exports = router; |