import { NextResponse } from "next/server"; import { verifyToken } from "@/lib/auth"; import smbClient from "@/lib/smbClient"; export async function GET(request) { const headers = new Headers(); headers.set("Cache-Control", "no-store"); const decoded = verifyToken(request); if (decoded.error) { return NextResponse.json( { error: decoded.error }, { status: 401, headers } ); } if (decoded.role !== "admin") { console.log( `Unauthorized access attempt by non-admin user: ${decoded.username}` ); return NextResponse.json( { error: "Unauthorized access. Admin only." }, { status: 403, headers } ); } return new Promise((resolve) => { smbClient.readdir("", (err, files) => { if (err) { console.error("Fehler beim Zugriff auf den Ordner Niederlassungen:", err); resolve( NextResponse.json( { error: "Fehler beim Zugriff auf den Ordner Niederlassungen", details: err.message, }, { status: 500, headers } ) ); } else { const filteredFiles = files.filter(file => file !== "@Recently-Snapshot"); // Zwingend alphabetisch aufsteigend sortieren const sortedFiles = [...filteredFiles].sort((a, b) => { return a.toLowerCase().localeCompare(b.toLowerCase()); }); resolve( NextResponse.json({ files: sortedFiles }, { status: 200, headers }) ); } }); }); }