3d381944d2
Next.js + Express event management app for Hope Family Church.
52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const {
|
|
registerUser,
|
|
loginUser,
|
|
getUserProfile,
|
|
updateUserProfile,
|
|
getUsers,
|
|
checkUserExists,
|
|
getUserById,
|
|
updateUser,
|
|
deleteUser,
|
|
anonymizeUser,
|
|
requestPasswordReset,
|
|
resetPassword,
|
|
activateAccount,
|
|
revokeMySession,
|
|
adminRevokeUserSessions,
|
|
closeAccount,
|
|
} = require('../controllers/userController');
|
|
const { protect, admin, supervisor, loginLimiter} = require('../middleware/authMiddleware');
|
|
|
|
// Public routes
|
|
router.post('/', registerUser);
|
|
router.post('/login', loginLimiter, loginUser);
|
|
router.post('/forgot', requestPasswordReset);
|
|
router.post('/reset', resetPassword);
|
|
router.post('/activate', activateAccount);
|
|
|
|
// Protected routes
|
|
router.route('/profile')
|
|
.get(protect, getUserProfile)
|
|
.put(protect, updateUserProfile);
|
|
|
|
router.post('/revoke-sessions', protect, revokeMySession);
|
|
router.post('/close-account', protect, closeAccount);
|
|
|
|
// Admin routes
|
|
router.route('/')
|
|
.get(protect, supervisor, getUsers);
|
|
|
|
router.get('/check-exists', protect, supervisor, checkUserExists);
|
|
|
|
router.route('/:id')
|
|
.get(protect, admin, getUserById)
|
|
.put(protect, admin, updateUser)
|
|
.delete(protect, admin, deleteUser);
|
|
|
|
router.post('/:id/revoke-sessions', protect, admin, adminRevokeUserSessions);
|
|
router.post('/:id/anonymize', protect, admin, anonymizeUser);
|
|
|
|
module.exports = router; |