// frontend/app/(protected)/layout.jsx import Link from "next/link"; import { redirect } from "next/navigation"; import { getSession } from "@/lib/auth"; import { can } from "@/lib/rbac"; export const metadata = { title: "DMS | Protected" }; export default async function ProtectedLayout({ children }) { // ตรวจ session ฝั่งเซิร์ฟเวอร์ ด้วยคุกกี้จริง const session = await getSession(); if (!session) { redirect("/login"); } const { user } = session; return (
{/* System / Quick Actions */}
Document Management System — LCP3 Phase 3
{can(user, "admin:view") && ( Admin )} {can(user, "users:manage") && ( ผู้ใช้/บทบาท )} {can(user, "health:view") && ( Health )} {can(user, "workflow:view") && ( Workflow )} {can(user, "rfa:create") && ( + RFA )} {can(user, "drawing:upload") && ( + Upload Drawing )} {can(user, "transmittal:create") && ( + Transmittal )} {can(user, "correspondence:create") && ( + หนังสือสื่อสาร )}
{children}
); }