diff --git a/CHANGELOG.md b/CHANGELOG.md index b77c319..cb5d60c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert. --- +## [1.6.403] – 2025-05-13 + +### Sicherheit & UI + +- Der Umschalter für die TDR-Aktivierung in `TdrEinstellung.tsx` wird jetzt nur noch angezeigt, wenn ein Admin eingeloggt ist. +- Damit wird verhindert, dass Standardnutzer oder Gäste versehentlich TDR-Funktionen aktivieren oder deaktivieren. +- Gleiche Logik wie beim „Firmware Update“-Button in `KueEinstellung.tsx` (`useAdminAuth`). + +--- + ## [1.6.402] – 2025-05-13 ### Fix diff --git a/README.md b/README.md index 949b362..321df2f 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ Die Benutzeroberfläche ist modular aufgebaut und ermöglicht Zugriff auf digita - Beim Umschalten der TDR-Funktion (Ein/Aus) wird eine Bestätigung angezeigt. - Nach Klick auf „OK“ wird die Seite automatisch neu geladen, da der neue TDR-Status aktuell **nicht sofort im UI aktualisiert wird**. + - Nur eingeloggte Admins können die TDR-Funktion aktivieren oder deaktivieren. + - Der Schalter wird im UI ausgeblendet, wenn kein Admin-Login erfolgt ist. > Hinweis: Diese Lösung wurde aus Zeitgründen gewählt (Deadline), um eine stabile Anzeige sicherzustellen. Eine spätere Optimierung über Redux- und React-State-Handling ist vorgesehen. diff --git a/components/main/kabelueberwachung/kue705FO/modals/TdrEinstellung.tsx b/components/main/kabelueberwachung/kue705FO/modals/TdrEinstellung.tsx index 7a16659..4327f5e 100644 --- a/components/main/kabelueberwachung/kue705FO/modals/TdrEinstellung.tsx +++ b/components/main/kabelueberwachung/kue705FO/modals/TdrEinstellung.tsx @@ -9,12 +9,15 @@ import React, { useState, useEffect } from "react"; import { useSelector } from "react-redux"; import { RootState } from "../../../../../redux/store"; +import { useAdminAuth } from "../../../settingsPageComponents/hooks/useAdminAuth"; + interface Props { slot: number; onClose?: () => void; // ← NEU } export default function TdrEinstellung({ slot, onClose }: Props) { + const { isAdminLoggedIn } = useAdminAuth(true); const tdrSlice = useSelector((state: RootState) => state.kueDataSlice); const cacheKey = `slot_${slot}`; @@ -162,29 +165,31 @@ export default function TdrEinstellung({ slot, onClose }: Props) { return (
{/* TDR-Funktion */} -
- TDR-Funktion: -
- - - {tdrActive ? "aktiviert" : "deaktiviert"} - + > + + + + {tdrActive ? "aktiviert" : "deaktiviert"} + +
-
+ )}
diff --git a/config/webVersion.ts b/config/webVersion.ts index 1db7bd7..6fe7e72 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.402"; +const webVersion = "1.6.403"; export default webVersion; diff --git a/utils/goTDR.ts b/utils/goTDR.ts index ea45957..feb316a 100644 --- a/utils/goTDR.ts +++ b/utils/goTDR.ts @@ -31,7 +31,7 @@ export const goTDR = async ( // 🚀 ECHTER Backend-Aufruf über CGI try { const response = await fetch( - `${window.location.origin}/CPL?Service/Kabelueberwachung.html&KTT${slotIndex}=1`, + `${window.location.origin}/CPL?kabelueberwachung.html&KTT${slotIndex}=1`, { method: "GET", } @@ -39,7 +39,7 @@ export const goTDR = async ( if (response.ok) { alert( - `TDR Messung der KÜ705-FO Strecke ${slotIndex + 1} wurde durchgeführt` + `Die TDR-Messung wird durchgeführt. Das Messergebnis ist in wenigen Minuten verfügbar.` ); console.log("TDR erfolgreich gestartet für Slot", slotIndex + 1); } else {