Integrated new member state into manage members page
Implemented suspend/unsuspend
This commit is contained in:
@@ -5,7 +5,7 @@ import { Request, Response } from 'express';
|
||||
import pool from '../db';
|
||||
import { requireLogin, requireMemberState, requireRole } from '../middleware/auth';
|
||||
import { getUserActiveLOA } from '../services/db/loaService';
|
||||
import { getAllMembersLite, getMemberSettings, getMembersFull, getMembersLite, getUserData, getUserState, setUserSettings, getFilteredMembers, setUserState } from '../services/db/memberService';
|
||||
import { getAllMembersLite, getMemberSettings, getMembersFull, getMembersLite, getUserData, getUserState, setUserSettings, getFilteredMembers, setUserState, getLastNonSuspendedState } from '../services/db/memberService';
|
||||
import { getUserRoles } from '../services/db/rolesService';
|
||||
import { memberSettings, MemberState, myData } from '@app/shared/types/member';
|
||||
import { Discharge } from '@app/shared/schemas/dischargeSchema';
|
||||
@@ -259,10 +259,48 @@ router.post('/discharge', [requireLogin, requireMemberState(MemberState.Member),
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
})
|
||||
res.sendStatus(500);
|
||||
} finally {
|
||||
if (con)
|
||||
con.release();
|
||||
}
|
||||
});
|
||||
|
||||
//suspend member
|
||||
router.post('/suspend', [requireLogin, requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req: Request, res: Response) => {
|
||||
let author = req.user.id;
|
||||
let target = Number(req.query.target);
|
||||
try {
|
||||
await setUserState(target, MemberState.Suspended, "Member Suspended", author, null);
|
||||
res.sendStatus(200);
|
||||
} catch (error) {
|
||||
logger.error('app', 'Failed to suspend user', {
|
||||
target: target,
|
||||
caller: req.user.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
})
|
||||
res.sendStatus(500);
|
||||
}
|
||||
})
|
||||
|
||||
//unsuspend member
|
||||
router.post('/unsuspend', [requireLogin, requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req: Request, res: Response) => {
|
||||
let author = req.user.id;
|
||||
let target = Number(req.query.target);
|
||||
try {
|
||||
let prevState = await getLastNonSuspendedState(target);
|
||||
await setUserState(target, prevState, "Member Suspension Removed", author, null);
|
||||
res.sendStatus(200);
|
||||
} catch (error) {
|
||||
logger.error('app', 'Failed to suspend user', {
|
||||
target: target,
|
||||
caller: req.user.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
})
|
||||
res.sendStatus(500);
|
||||
}
|
||||
})
|
||||
|
||||
export const memberRouter = router;
|
||||
|
||||
Reference in New Issue
Block a user