Merge pull request #1391 from MathMan05/Dec
This commit is contained in:
commit
5c5d62a174
Binary file not shown.
Binary file not shown.
@ -17,12 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { route } from "@spacebar/api";
|
import { route } from "@spacebar/api";
|
||||||
import {
|
import { emitEvent, Member, User, UserDeleteEvent } from "@spacebar/util";
|
||||||
emitEvent,
|
|
||||||
Member,
|
|
||||||
User,
|
|
||||||
UserDeleteEvent,
|
|
||||||
} from "@spacebar/util";
|
|
||||||
import { Request, Response, Router } from "express";
|
import { Request, Response, Router } from "express";
|
||||||
import { PrivateUserProjection } from "@spacebar/schemas";
|
import { PrivateUserProjection } from "@spacebar/schemas";
|
||||||
|
|
||||||
@ -47,10 +42,8 @@ router.post(
|
|||||||
where: { id: req.params.user_id },
|
where: { id: req.params.user_id },
|
||||||
select: [...PrivateUserProjection, "data"],
|
select: [...PrivateUserProjection, "data"],
|
||||||
});
|
});
|
||||||
await Promise.all([
|
const members = await Member.find({ where: { id: req.params.user_id } });
|
||||||
Member.delete({ id: req.params.user_id }),
|
await Promise.all([...members.map((member) => Member.removeFromGuild(member.id, member.guild_id)), User.delete({ id: req.params.user_id })]);
|
||||||
User.delete({ id: req.params.user_id }),
|
|
||||||
]);
|
|
||||||
|
|
||||||
// TODO: respect intents as USER_DELETE has potential to cause privacy issues
|
// TODO: respect intents as USER_DELETE has potential to cause privacy issues
|
||||||
await emitEvent({
|
await emitEvent({
|
||||||
|
|||||||
@ -46,10 +46,7 @@ router.post(
|
|||||||
|
|
||||||
if (user.data.hash) {
|
if (user.data.hash) {
|
||||||
// guest accounts can delete accounts without password
|
// guest accounts can delete accounts without password
|
||||||
correctpass = await bcrypt.compare(
|
correctpass = await bcrypt.compare(req.body.password, user.data.hash);
|
||||||
req.body.password,
|
|
||||||
user.data.hash,
|
|
||||||
);
|
|
||||||
if (!correctpass) {
|
if (!correctpass) {
|
||||||
throw new HTTPError(req.t("auth:login.INVALID_PASSWORD"));
|
throw new HTTPError(req.t("auth:login.INVALID_PASSWORD"));
|
||||||
}
|
}
|
||||||
@ -58,10 +55,8 @@ router.post(
|
|||||||
// TODO: decrement guild member count
|
// TODO: decrement guild member count
|
||||||
|
|
||||||
if (correctpass) {
|
if (correctpass) {
|
||||||
await Promise.all([
|
const members = await Member.find({ where: { id: req.user_id } });
|
||||||
User.delete({ id: req.user_id }),
|
await Promise.all([User.delete({ id: req.user_id }), ...members.map((member) => Member.removeFromGuild(member.id, member.guild_id))]);
|
||||||
Member.delete({ id: req.user_id }),
|
|
||||||
]);
|
|
||||||
|
|
||||||
res.sendStatus(204);
|
res.sendStatus(204);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -77,7 +77,7 @@ router.delete(
|
|||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
Member.delete({ id: req.user_id, guild_id: guild_id }),
|
Member.removeFromGuild(req.user_id, guild_id),
|
||||||
emitEvent({
|
emitEvent({
|
||||||
event: "GUILD_DELETE",
|
event: "GUILD_DELETE",
|
||||||
data: {
|
data: {
|
||||||
|
|||||||
@ -178,7 +178,7 @@ export class Member extends BaseClassWithoutId {
|
|||||||
id: user_id,
|
id: user_id,
|
||||||
guild_id,
|
guild_id,
|
||||||
}),
|
}),
|
||||||
Guild.decrement({ id: guild_id }, "member_count", -1),
|
Guild.decrement({ id: guild_id }, "member_count", 1),
|
||||||
|
|
||||||
emitEvent({
|
emitEvent({
|
||||||
event: "GUILD_DELETE",
|
event: "GUILD_DELETE",
|
||||||
|
|||||||
Reference in New Issue
Block a user