Fix creating bot accounts

This commit is contained in:
Madeline 2022-12-24 16:28:00 +11:00
parent 92f6b4fd89
commit 35938556fe
2 changed files with 16 additions and 5 deletions

View File

@ -15,6 +15,7 @@ router.post("/", route({}), async (req: Request, res: Response) => {
const user = await User.register({ const user = await User.register({
username: app.name, username: app.name,
password: undefined, password: undefined,
id: app.id,
req, req,
}); });
@ -29,7 +30,9 @@ router.post("/", route({}), async (req: Request, res: Response) => {
await app.save(); await app.save();
res.send().status(204); res.send({
token: await generateToken(user.id)
}).status(204);
}); });
router.post("/reset", route({}), async (req: Request, res: Response) => { router.post("/reset", route({}), async (req: Request, res: Response) => {

View File

@ -306,12 +306,14 @@ export class User extends BaseClass {
username, username,
password, password,
date_of_birth, date_of_birth,
id,
req, req,
}: { }: {
username: string; username: string;
password?: string; password?: string;
email?: string; email?: string;
date_of_birth?: Date; // "2000-04-03" date_of_birth?: Date; // "2000-04-03"
id?: string,
req?: any; req?: any;
}) { }) {
// trim special uf8 control characters -> Backspace, Newline, ... // trim special uf8 control characters -> Backspace, Newline, ...
@ -334,10 +336,14 @@ export class User extends BaseClass {
const language = const language =
req.language === "en" ? "en-US" : req.language || "en-US"; req.language === "en" ? "en-US" : req.language || "en-US";
const settings = UserSettings.create({
locale: language,
})
const user = User.create({ const user = User.create({
username: username, username: username,
discriminator, discriminator,
id: Snowflake.generate(), id: id || Snowflake.generate(),
email: email, email: email,
rights: Config.get().register.defaultRights, rights: Config.get().register.defaultRights,
data: { data: {
@ -348,12 +354,14 @@ export class User extends BaseClass {
premium_type: Config.get().defaults.user.premium_type, premium_type: Config.get().defaults.user.premium_type,
premium: Config.get().defaults.user.premium, premium: Config.get().defaults.user.premium,
verified: Config.get().defaults.user.verified, verified: Config.get().defaults.user.verified,
settings: { ...new UserSettings(), locale: language } settings: settings,
}); });
user.validate(); user.validate();
await user.save(); await Promise.all([
await user.settings.save(); user.save(),
settings.save(),
])
setImmediate(async () => { setImmediate(async () => {
if (Config.get().guild.autoJoin.enabled) { if (Config.get().guild.autoJoin.enabled) {