- Redux-Dispatch `setAdminLoggedIn(true)` in handleAdminLogin integriert - Login-Funktion in GeneralSettings.tsx angepasst, um Dispatch weiterzugeben - Sichtbarkeit von Admin-Funktionen wie Firmware-Update-Button funktioniert jetzt zuverlässig
34 lines
996 B
TypeScript
34 lines
996 B
TypeScript
// components/main/settingsPageComponents/GeneralSettings.tsx
|
|
import bcrypt from "bcryptjs";
|
|
import { generateToken } from "../utils/cryptoUtils";
|
|
import USERS from "../config/users";
|
|
import { setAdminLoggedIn } from "../../../../redux/slices/authSlice"; // ✅ Wichtig
|
|
|
|
const handleAdminLogin = (
|
|
username: string,
|
|
password: string,
|
|
onSuccess: () => void,
|
|
onError: (errorMsg: string) => void,
|
|
dispatch: any // ✅ neu
|
|
) => {
|
|
const user = USERS.Admin;
|
|
bcrypt.compare(password, user.password, (err, isMatch) => {
|
|
if (isMatch) {
|
|
const token = generateToken(user);
|
|
sessionStorage.setItem("token", token);
|
|
localStorage.setItem("isAdminLoggedIn", "true");
|
|
|
|
dispatch(setAdminLoggedIn(true)); // ✅ Redux-Status setzen
|
|
|
|
onSuccess();
|
|
} else {
|
|
dispatch(setAdminLoggedIn(false)); // optional
|
|
onError(
|
|
"Login fehlgeschlagen. Bitte überprüfen Sie Benutzername und Passwort."
|
|
);
|
|
}
|
|
});
|
|
};
|
|
|
|
export default handleAdminLogin;
|