mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2026-05-31 10:18:52 +00:00
fix(submission): restrict submission access to current user
This commit is contained in:
parent
662e223042
commit
6324cc9aa6
@ -75,8 +75,13 @@ export const getAnalysis = async (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const analysis = await prisma.codeAnalysis.findUnique({
|
const analysis = await prisma.codeAnalysis.findFirst({
|
||||||
where: { submissionId: submissionId },
|
where: {
|
||||||
|
submissionId,
|
||||||
|
submission: {
|
||||||
|
userId: session.user.id,
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!analysis) {
|
if (!analysis) {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
import { auth } from "@/lib/auth";
|
||||||
import prisma from "@/lib/prisma";
|
import prisma from "@/lib/prisma";
|
||||||
import { Locale } from "@/generated/client";
|
import { Locale } from "@/generated/client";
|
||||||
import { Label } from "@/components/ui/label";
|
import { Label } from "@/components/ui/label";
|
||||||
@ -22,17 +23,17 @@ export const DetailTable = async ({ submissionId }: DetailTableProps) => {
|
|||||||
const t = await getTranslations("DetailsPage");
|
const t = await getTranslations("DetailsPage");
|
||||||
const s = await getTranslations("StatusMessage");
|
const s = await getTranslations("StatusMessage");
|
||||||
const locale = (await getLocale()) as Locale;
|
const locale = (await getLocale()) as Locale;
|
||||||
const submission = await prisma.submission.findUnique({
|
const session = await auth();
|
||||||
where: {
|
const userId = session?.user?.id;
|
||||||
id: submissionId,
|
|
||||||
},
|
const submission = userId
|
||||||
});
|
? await prisma.submission.findFirst({
|
||||||
const judge = await prisma.judge.findUnique({
|
where: {
|
||||||
where: { submissionId },
|
id: submissionId,
|
||||||
select: {
|
userId,
|
||||||
compileOutput: true,
|
},
|
||||||
},
|
})
|
||||||
});
|
: null;
|
||||||
|
|
||||||
if (!submission)
|
if (!submission)
|
||||||
return (
|
return (
|
||||||
@ -41,6 +42,13 @@ export const DetailTable = async ({ submissionId }: DetailTableProps) => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const judge = await prisma.judge.findUnique({
|
||||||
|
where: { submissionId },
|
||||||
|
select: {
|
||||||
|
compileOutput: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const createdAt = new Date(submission.createdAt);
|
const createdAt = new Date(submission.createdAt);
|
||||||
const submittedDisplay = formatSubmissionDate(createdAt, locale);
|
const submittedDisplay = formatSubmissionDate(createdAt, locale);
|
||||||
|
|
||||||
|
|||||||
@ -46,7 +46,7 @@ export const SubmissionContent = async ({
|
|||||||
|
|
||||||
return userId ? (
|
return userId ? (
|
||||||
<div className="px-3">
|
<div className="px-3">
|
||||||
<SubmissionTable problemId={problemId} />
|
<SubmissionTable problemId={problemId} userId={userId} />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<LoginPromptCard />
|
<LoginPromptCard />
|
||||||
|
|||||||
@ -11,13 +11,17 @@ import { SubmissionTableRow } from "@/features/problems/submission/components/ro
|
|||||||
|
|
||||||
interface SubmissionTableProps {
|
interface SubmissionTableProps {
|
||||||
problemId: string;
|
problemId: string;
|
||||||
|
userId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SubmissionTable = async ({ problemId }: SubmissionTableProps) => {
|
export const SubmissionTable = async ({
|
||||||
|
problemId,
|
||||||
|
userId,
|
||||||
|
}: SubmissionTableProps) => {
|
||||||
const t = await getTranslations("SubmissionsTable");
|
const t = await getTranslations("SubmissionsTable");
|
||||||
|
|
||||||
const submissions = await prisma.submission.findMany({
|
const submissions = await prisma.submission.findMany({
|
||||||
where: { problemId },
|
where: { problemId, userId },
|
||||||
orderBy: { createdAt: "desc" },
|
orderBy: { createdAt: "desc" },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user