import { getExamAssignmentById } from "@/app/lib/actions/examActions"; import MainSection from "@/app/(protected)/components/shared/Main"; import ExamResults from "@/app/(protected)/components/teacher/ExamResults"; import { auth } from "@/app/lib/utils/auth"; import { redirect } from "next/navigation"; import NotAuthorized from "@/app/auth/components/NotAuthorized"; import { getClassModel } from "@/app/models/Class"; import { isValidObjectId } from "@/app/lib/helpers/validObjectId"; export default async function AdminAssignmentResultsPage({ params }) { const { id: assignmentId } = await params || {}; if (!isValidObjectId(assignmentId)) { return ( Registro não encontrado. ); } const session = await auth(); if (!session?.user?.id) { redirect("/auth/login"); } const userRoles = Array.isArray(session.user.roles) ? session.user.roles : []; const isAdmin = userRoles.includes("admin") || userRoles.includes("superadmin") || session.user.role === "admin" || session.user.role === "superadmin"; if (!isAdmin) { return ; } const result = await getExamAssignmentById(assignmentId); if (!result.success) { return ( Resultados da prova {result.error || "Não foi possível carregar os resultados desta prova."} ); } const assignment = result.success ? result.data : null; // Check if current user is a teacher of the class let canGrade = false; if (session?.user?.id && assignment?.classId) { const Class = await getClassModel(); const classRef = assignment.classId?._id || assignment.classId; const classData = await Class.findById(classRef).lean(); const teacherIds = classData?.teachers?.map((t) => t.toString()) || []; canGrade = teacherIds.includes(session.user.id); } return ( {assignment?.title || "Prova"} Resultados e correção das provas ); }
Registro não encontrado.
{result.error || "Não foi possível carregar os resultados desta prova."}
Resultados e correção das provas