fetchAdminFiles.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // lib/fetchAdminFiles.js
  2. import smbClient from "@/lib/smbClient";
  3. import { verifyToken } from "@/lib/auth";
  4. export async function fetchAdminFiles(pathSegments = []) {
  5. const authData = verifyToken();
  6. if (authData.error || authData.role !== "admin") {
  7. throw new Error(
  8. "Zugriff verweigert. Nur Admins dürfen auf diesen Bereich zugreifen."
  9. );
  10. }
  11. // Passe den Pfad an, um ohne "Niederlassungen" zu arbeiten
  12. const smbPath = pathSegments.join("\\");
  13. console.log("fetchAdminFiles: Lade Dateien vom Pfad:", smbPath);
  14. try {
  15. const files = await new Promise((resolve, reject) => {
  16. smbClient.readdir(smbPath, (err, files) => {
  17. if (err) {
  18. console.error("Fehler beim Abrufen der Dateien:", err);
  19. reject(new Error(`Fehler beim Abrufen der Dateien: ${err.message}`));
  20. } else {
  21. console.log("Dateien erfolgreich abgerufen:", files);
  22. resolve(files || []);
  23. }
  24. });
  25. });
  26. return files.map((fileName) => ({
  27. name: fileName,
  28. type: fileName.includes(".") ? "file" : "folder",
  29. }));
  30. } catch (err) {
  31. console.error("Fehler beim Abrufen der Admin-Dateien:", err);
  32. return [];
  33. }
  34. }