Fixed #194 issues
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m43s
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m43s
This commit is contained in:
@@ -6,7 +6,7 @@ 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, getLastNonSuspendedState } from '../services/db/memberService';
|
||||
import { getUserRoles } from '../services/db/rolesService';
|
||||
import { getUserRoles, stripUserRoles } from '../services/db/rolesService';
|
||||
import { memberSettings, MemberState, myData } from '@app/shared/types/member';
|
||||
import { Discharge } from '@app/shared/schemas/dischargeSchema';
|
||||
|
||||
@@ -249,6 +249,7 @@ router.post('/discharge', [requireLogin, requireMemberState(MemberState.Member),
|
||||
|
||||
var data: Discharge = req.body;
|
||||
setUserState(data.userID, MemberState.Discharged, "Member Discharged", author, con, data.reason);
|
||||
stripUserRoles(data.userID, con);
|
||||
cancelLatestRank(data.userID, con);
|
||||
cancelLatestUnit(data.userID, con);
|
||||
con.commit();
|
||||
|
||||
@@ -3,6 +3,7 @@ import pool from '../../db';
|
||||
import { Role, RoleSummary } from '@app/shared/types/roles'
|
||||
import { logger } from '../logging/logger';
|
||||
import { memberCache } from '../../routes/auth';
|
||||
import * as mariadb from 'mariadb';
|
||||
|
||||
export async function assignUserGroup(userID: number, roleID: number) {
|
||||
try {
|
||||
@@ -62,4 +63,16 @@ export async function getUsersWithRole(roleId: number): Promise<MemberLight[]> {
|
||||
)
|
||||
|
||||
return out as MemberLight[]
|
||||
}
|
||||
|
||||
export async function stripUserRoles(userID: number, con: mariadb.Pool | mariadb.Connection = pool) {
|
||||
try {
|
||||
const out = await con.query(`DELETE FROM members_roles WHERE member_id = ?;`, [userID]);
|
||||
return { success: true, affectedRows: out.affectedRows };
|
||||
} catch (error) {
|
||||
logger.error('app', 'Failed to strip user roles', error);
|
||||
throw error;
|
||||
} finally {
|
||||
memberCache.Invalidate(userID);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user