Fix user self delete not removing settings protos
Nix build / build-nix (push) Failing after 1m28s
Build docker images / build (gateway-offload) (push) Failing after 5m1s
Style / build (24.x) (push) Failing after 2m27s
Build docker images / build (admin-api) (push) Failing after 1m11s
Build docker images / build (cdn) (push) Failing after 1m41s
Build docker images / build (cdn-cs) (push) Failing after 1m29s
Build docker images / build (gateway) (push) Failing after 1m16s
Build / build (24.x) (push) Successful in 2m25s
Build docker images / build (default) (push) Failing after 1m16s
Build docker images / build (api) (push) Failing after 5m51s

This commit is contained in:
ChrisChrome
2026-02-16 14:34:43 -07:00
parent 0c384cf4e9
commit c671db2938
+8 -1
View File
@@ -17,7 +17,7 @@
*/
import { route } from "@spacebar/api";
import { Member, User } from "@spacebar/util";
import { DiscordApiErrors, Guild, Member, User, UserSettingsProtos } from "@spacebar/util";
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
@@ -55,7 +55,14 @@ router.post(
// TODO: decrement guild member count
if (correctpass) {
// Check if the user owns any guilds.
const ownedGuilds = await Guild.findOne({ where: { owner_id: req.user_id } });
if (ownedGuilds) {
throw new HTTPError("User owns guilds and cannot be deleted", 403);
}
const members = await Member.find({ where: { id: req.user_id } });
await UserSettingsProtos.delete({ user_id: req.user_id });
await Promise.all([User.delete({ id: req.user_id }), ...members.map((member) => Member.removeFromGuild(member.id, member.guild_id))]);
res.sendStatus(204);