mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 08:37:07 +00:00
33 lines
888 B
JavaScript
33 lines
888 B
JavaScript
|
|
// const { user } = require('../../../lib/db');
|
|
// const organisations = require('../../../lib/organisations');
|
|
const ServerUser = require('../../../lib/db/user/User');
|
|
|
|
module.exports = async function (req, res, next) {
|
|
|
|
try {
|
|
if (req.params.user_id == req.user?.id) {
|
|
throw {status: 403, message: "Cannot self-delete"};
|
|
} else {
|
|
const requestor = new ServerUser(req.user);
|
|
const target = await ServerUser.fromSQL(null, req.params.user_id);
|
|
|
|
if (requestor.canEdit(target)) {
|
|
if (await target.remove()) {
|
|
res.status(204).send();
|
|
} else {
|
|
// Delete did not return a successful response. We assume this
|
|
// is because the user did not exist in the first place so we
|
|
// still return a success response
|
|
res.status(202).send();
|
|
}
|
|
} else {
|
|
throw {status: 403, message: "Access denied"};
|
|
}
|
|
}
|
|
} catch (err) {
|
|
next(err);
|
|
}
|
|
|
|
};
|