using Avalonia.Controls;
using Avalonia.Interactivity;
using ChronoFlow.Model;
namespace ChronoFlow.View.Security;
///
/// Dialog zum Ändern des Passworts eines Benutzers.
///
public partial class PasswortAendernDialog : Window
{
///
/// Das neue Passwort, das im Dialog eingegeben wurde.
///
public string NeuesPasswort { get; private set; } = "";
private readonly User _user;
///
/// Parameterloser Konstruktor für Avalonia (z. B. für Preview, AVLN:0005-Fix).
/// ⚠ Wird nur für Entwicklungszwecke oder Design-Time genutzt.
///
public PasswortAendernDialog() : this(new User { Username = "DemoUser", Role = "Mitarbeiter" })
{
System.Console.WriteLine("⚠ Parameterloser Konstruktor für PasswortAendernDialog verwendet.");
}
///
/// Konstruktor mit Benutzerobjekt (wird im echten Ablauf verwendet).
///
/// Der aktuell eingeloggte Benutzer.
public PasswortAendernDialog(User user)
{
InitializeComponent();
_user = user;
}
///
/// Wird aufgerufen, wenn der Benutzer auf "Speichern" klickt.
/// Prüft Eingaben und schließt den Dialog mit dem neuen Passwort.
///
private void SpeichernButton_Click(object? sender, RoutedEventArgs e)
{
var passwort = NeuesPasswortBox.Text?.Trim();
var bestaetigen = BestaetigenBox.Text?.Trim();
if (string.IsNullOrWhiteSpace(passwort) || string.IsNullOrWhiteSpace(bestaetigen))
{
FehlerText.Text = "Bitte alle Felder ausfüllen.";
FehlerText.IsVisible = true;
return;
}
if (passwort != bestaetigen)
{
FehlerText.Text = "Passwörter stimmen nicht überein.";
FehlerText.IsVisible = true;
return;
}
NeuesPasswort = passwort;
Close(NeuesPasswort);
}
///
/// Bricht den Vorgang ab und schließt den Dialog ohne Ergebnis.
///
private void AbbrechenButton_Click(object? sender, RoutedEventArgs e)
{
Close(null);
}
}