diff --git a/src/api/routes/auth/login.ts b/src/api/routes/auth/login.ts
index e6616731..9c6f2335 100644
--- a/src/api/routes/auth/login.ts
+++ b/src/api/routes/auth/login.ts
@@ -72,14 +72,13 @@ router.post(
"id",
"disabled",
"deleted",
- "settings",
"totp_secret",
"mfa_enabled",
"webauthn_enabled",
"security_keys",
"verified",
],
- relations: ["security_keys"],
+ relations: ["security_keys", "settings"],
}).catch(() => {
throw FieldErrors({
login: {
@@ -187,7 +186,7 @@ router.post(
// Discord header is just the user id as string, which is not possible with npm-jsonwebtoken package
// https://user-images.githubusercontent.com/6506416/81051916-dd8c9900-8ec2-11ea-8794-daf12d6f31f0.png
- res.json({ token, settings: user.settings });
+ res.json({ token, settings: { ...user.settings, index: undefined } });
},
);
diff --git a/src/api/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts
index 65cdd397..6236d209 100644
--- a/src/api/routes/auth/mfa/totp.ts
+++ b/src/api/routes/auth/mfa/totp.ts
@@ -34,7 +34,8 @@ router.post(
where: {
totp_last_ticket: ticket,
},
- select: ["id", "totp_secret", "settings"],
+ select: ["id", "totp_secret"],
+ relations: ["settings"],
});
const backup = await BackupCode.findOne({
diff --git a/src/api/routes/auth/mfa/webauthn.ts b/src/api/routes/auth/mfa/webauthn.ts
index c4334c4c..a9fa78b2 100644
--- a/src/api/routes/auth/mfa/webauthn.ts
+++ b/src/api/routes/auth/mfa/webauthn.ts
@@ -54,7 +54,8 @@ router.post(
where: {
totp_last_ticket: ticket,
},
- select: ["id", "settings"],
+ select: ["id"],
+ relations: ["settings"],
});
const ret = await verifyWebAuthnToken(ticket);
diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
index a33e06ce..85fb251c 100644
--- a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
+++ b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
@@ -89,11 +89,11 @@ router.post(
"id",
"disabled",
"deleted",
- "settings",
"totp_secret",
"mfa_enabled",
"username",
],
+ relations: ["settings"],
});
if (isGenerateSchema(req.body)) {
diff --git a/src/cdn/routes/embed.ts b/src/cdn/routes/embed.ts
index fd13d215..d49d69f7 100644
--- a/src/cdn/routes/embed.ts
+++ b/src/cdn/routes/embed.ts
@@ -23,12 +23,23 @@ import { HTTPError } from "lambert-server";
import { join } from "path";
const defaultAvatarHashMap = new Map([
- ["0", "1f0bfc0865d324c2587920a7d80c609b"],
- ["1", "c09a43a372ba81e3018c3151d4ed4773"],
- ["2", "7c8f476123d28d103efe381543274c25"],
- ["3", "6f26ddd1bf59740c536d2274bb834a05"],
- ["4", "3c6ccb83716d1e4fb91d3082f6b21d77"],
- ["5", "4c1b599b1ef5b9f1874fdb9933f3e03b"],
+ ["0", "823a3de61c4dc2415cc4dbc38fca4299"],
+ ["1", "e56a89224be0b2b1f7c04eca975be468"],
+ ["2", "0c8138dcc0dfe2689cdd73f7952c2475"],
+ ["3", "5ac2728593bb455250d11b848a0c36c6"],
+ ["4", "addd2f3268df46459e1d6012ad8e75bd"],
+ ["5", "c4e0c8300fa491d94acfd2a1fb26cea8"],
+]);
+
+const defaultGroupDMAvatarHashMap = new Map([
+ ["0", "3b70bb66089c60f8be5e214bf8574c9d"],
+ ["1", "9581acd31832465bdeaa5385b0e919a3"],
+ ["2", "a8a4727cf2dc2939bd3c657fad4463fa"],
+ ["3", "2e46fe14586f8e95471c0917f56726b5"],
+ ["4", "fac7e78de9753d4a37083bba74c1d9ef"],
+ ["5", "4ab900144b0865430dc9be825c838faa"],
+ ["6", "1276374a404452756f3c9cc2601508a5"],
+ ["7", "904bf9f1b61f53ef4a3b7a893afeabe3"],
]);
const router = Router();
@@ -64,4 +75,21 @@ router.get("/avatars/:id", async (req: Request, res: Response) => {
return res.send(file);
});
+router.get("/group-avatars/:id", async (req: Request, res: Response) => {
+ let { id } = req.params;
+ id = id.split(".")[0]; // remove .file extension
+ const hash = defaultGroupDMAvatarHashMap.get(id);
+ if (!hash) throw new HTTPError("not found", 404);
+ const path = join(process.cwd(), "assets", "public", `${hash}.png`);
+
+ const file = await getFile(path);
+ if (!file) throw new HTTPError("not found", 404);
+ const type = await FileType.fromBuffer(file);
+
+ res.set("Content-Type", type?.mime);
+ res.set("Cache-Control", "public, max-age=31536000");
+
+ return res.send(file);
+});
+
export default router;
|