| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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 })
- );
- }
- });
- });
- }
|