import { Router } from 'express'; import { requireAuth, requireRole, CAN_MANAGE_USERS, ROLES } from '../../middleware/auth.js'; import { requireModule } from '../../middleware/modules.js'; import { getUsers, getRoles, postUser, putUser, patchUserActive, postApproveUser, postRejectUser, postResendUserEmail, getUserModules, putUserModules, getUserSessions, deleteUserSession, postRevokeUserSessions, } from './controller.js'; const router = Router(); router.use(requireAuth); router.get('/', getUsers); router.get('/roles', getRoles); router.post('/', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), postUser); router.put('/:id', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), putUser); router.patch('/:id/active', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), patchUserActive); router.post('/:id/approve', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), postApproveUser); router.post('/:id/reject', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), postRejectUser); router.get('/:id/modules', requireRole(ROLES.SUPERADMIN), getUserModules); router.put('/:id/modules', requireRole(ROLES.SUPERADMIN), putUserModules); router.post('/:id/resend', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), postResendUserEmail); router.get('/:id/sessions', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), getUserSessions); router.delete('/:id/sessions/:sessionId', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), deleteUserSession); router.post('/:id/sessions/revoke-all', requireModule('organization'), requireRole(...CAN_MANAGE_USERS), postRevokeUserSessions); export default router;