fix: snapshot current Discord profile on web shares
This commit is contained in:
@@ -6,6 +6,7 @@ import { db } from "@/db";
|
|||||||
import { users } from "@/db/schema";
|
import { users } from "@/db/schema";
|
||||||
import type { SessionWithDiscord } from "@/lib/auth/auth";
|
import type { SessionWithDiscord } from "@/lib/auth/auth";
|
||||||
import { authOptions } from "@/lib/auth/auth-options";
|
import { authOptions } from "@/lib/auth/auth-options";
|
||||||
|
import { getDiscordMemberProfile } from "@/lib/discord/discord";
|
||||||
import { ShareHttpError } from "@/lib/share/http-error";
|
import { ShareHttpError } from "@/lib/share/http-error";
|
||||||
import { requireShareSessionIdentity } from "@/lib/share/session";
|
import { requireShareSessionIdentity } from "@/lib/share/session";
|
||||||
|
|
||||||
@@ -22,10 +23,17 @@ export async function requireShareAuthor() {
|
|||||||
.limit(1);
|
.limit(1);
|
||||||
if (!user) throw new ShareHttpError("Unauthorized", 401);
|
if (!user) throw new ShareHttpError("Unauthorized", 401);
|
||||||
|
|
||||||
|
const profile = await getDiscordMemberProfile(discordId);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
discordId,
|
discordId,
|
||||||
displayName: user.name || session?.user?.name || "Discord user",
|
displayName:
|
||||||
avatarUrl: user.image || session?.user?.image || null,
|
profile?.globalName?.trim() ||
|
||||||
|
profile?.username ||
|
||||||
|
user.name ||
|
||||||
|
session?.user?.name ||
|
||||||
|
"Discord user",
|
||||||
|
avatarUrl: profile?.avatarUrl || user.image || session?.user?.image || null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user