fetchAdminList.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // lib/fetchAdminList.js
  2. import smbClient from "@/lib/smbClient";
  3. import { verifyToken } from "@/lib/auth";
  4. export async function fetchAdminList() {
  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. const smbPath = ""; // Wurzelverzeichnis für Niederlassungen
  12. try {
  13. const branches = await new Promise((resolve, reject) => {
  14. smbClient.readdir(smbPath, (err, files) => {
  15. if (err) {
  16. console.error("Fehler beim Abrufen der Niederlassungen:", err);
  17. reject(
  18. new Error(`Fehler beim Abrufen der Niederlassungen: ${err.message}`)
  19. );
  20. } else {
  21. const filteredFiles = files.filter(
  22. (file) => file !== "@Recently-Snapshot"
  23. );
  24. resolve(
  25. filteredFiles.map((branch) => ({
  26. name: branch,
  27. type: branch.includes(".") ? "file" : "folder",
  28. }))
  29. );
  30. }
  31. });
  32. });
  33. return branches;
  34. } catch (err) {
  35. console.error("Fehler beim Abrufen der Admin-Liste:", err);
  36. return [];
  37. }
  38. }