ChronoFlow/ChronoFlow.View/Security/PasswortAendernDialog.axaml.cs
2025-06-28 14:27:18 +02:00

73 lines
2.2 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Avalonia.Controls;
using Avalonia.Interactivity;
using ChronoFlow.Model;
namespace ChronoFlow.View.Security;
/// <summary>
/// Dialog zum Ändern des Passworts eines Benutzers.
/// </summary>
public partial class PasswortAendernDialog : Window
{
/// <summary>
/// Das neue Passwort, das im Dialog eingegeben wurde.
/// </summary>
public string NeuesPasswort { get; private set; } = "";
private readonly User _user;
/// <summary>
/// Parameterloser Konstruktor für Avalonia (z.B. für Preview, AVLN:0005-Fix).
/// ⚠ Wird nur für Entwicklungszwecke oder Design-Time genutzt.
/// </summary>
public PasswortAendernDialog() : this(new User { Username = "DemoUser", Role = "Mitarbeiter" })
{
System.Console.WriteLine("⚠ Parameterloser Konstruktor für PasswortAendernDialog verwendet.");
}
/// <summary>
/// Konstruktor mit Benutzerobjekt (wird im echten Ablauf verwendet).
/// </summary>
/// <param name="user">Der aktuell eingeloggte Benutzer.</param>
public PasswortAendernDialog(User user)
{
InitializeComponent();
_user = user;
}
/// <summary>
/// Wird aufgerufen, wenn der Benutzer auf "Speichern" klickt.
/// Prüft Eingaben und schließt den Dialog mit dem neuen Passwort.
/// </summary>
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);
}
/// <summary>
/// Bricht den Vorgang ab und schließt den Dialog ohne Ergebnis.
/// </summary>
private void AbbrechenButton_Click(object? sender, RoutedEventArgs e)
{
Close(null);
}
}