feat: auto-detect podman/docker in agent, add studentId to activation response, fix download URLs

This commit is contained in:
root
2026-06-06 21:14:24 +00:00
parent a1883080d3
commit 349c8d0e2a
11 changed files with 132 additions and 20 deletions
+3 -2
View File
@@ -9,14 +9,15 @@ import { DeleteClassDialog } from "./DeleteClassDialog";
export const dynamic = "force-dynamic";
export default async function ClassDetailPage({ params }: { params: { id: string } }) {
export default async function ClassDetailPage({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const session = await getServerSession(authOptions);
if (!session?.user) redirect("/login");
if (!session.user.establishmentId && session.user.role !== "superadmin") redirect("/dashboard");
const establishmentId = session.user.establishmentId;
const cls = await prisma.class.findFirst({
where: { id: params.id, ...(establishmentId ? { establishmentId } : {}) },
where: { id, ...(establishmentId ? { establishmentId } : {}) },
include: { students: true },
});
+3 -3
View File
@@ -18,7 +18,7 @@ async function createClass(formData: FormData) {
"use server";
const session = await getServerSession(authOptions);
if (!session?.user) redirect("/login");
if (!session.user.establishmentId && session.user.role !== "superadmin") redirect("/dashboard");
if (!session.user.establishmentId) redirect("/dashboard");
const parsed = schema.safeParse(Object.fromEntries(formData));
if (!parsed.success) return;
@@ -27,7 +27,7 @@ async function createClass(formData: FormData) {
data: {
name: parsed.data.name,
level: parsed.data.level,
establishmentId: session.user.establishmentId!,
establishment: { connect: { id: session.user.establishmentId } },
},
});
@@ -37,7 +37,7 @@ async function createClass(formData: FormData) {
export default async function NewClassPage() {
const session = await getServerSession(authOptions);
if (!session?.user) redirect("/login");
if (!session.user.establishmentId && session.user.role !== "superadmin") redirect("/dashboard");
if (!session.user.establishmentId) redirect("/dashboard");
return (
<div className="space-y-6 max-w-xl">