diff --git a/.idea/.idea.ChronoFlow/.idea/avalonia.xml b/.idea/.idea.ChronoFlow/.idea/avalonia.xml
index b21e8d0..1ca8246 100644
--- a/.idea/.idea.ChronoFlow/.idea/avalonia.xml
+++ b/.idea/.idea.ChronoFlow/.idea/avalonia.xml
@@ -5,7 +5,9 @@
diff --git a/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml b/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml
index 0723c82..c5c0e21 100644
--- a/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml
+++ b/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml
@@ -3,30 +3,41 @@
x:Class="ChronoFlow.View.Admin.MitarbeiterBearbeitenDialog"
Width="450" Height="600"
Title="Mitarbeiter bearbeiten">
+
-
-
-
-
+
+
+
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
\ No newline at end of file
diff --git a/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml.cs b/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml.cs
index 4edd1bc..aa00ca9 100644
--- a/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml.cs
+++ b/ChronoFlow.View/Admin/MitarbeiterBearbeitenDialog.axaml.cs
@@ -1,41 +1,71 @@
using Avalonia.Controls;
using Avalonia.Interactivity;
using ChronoFlow.Model;
+using ChronoFlow.Security;
namespace ChronoFlow.View.Admin;
+///
+/// Dialogfenster zur Bearbeitung eines Mitarbeiters durch den Admin.
+/// Enthält Eingabefelder für Name, Abteilung, Nummer und optional Passwort-Reset.
+///
public partial class MitarbeiterBearbeitenDialog : Window
{
+ ///
+ /// Benutzerobjekt mit den aktualisierten Werten, wird beim Schließen zurückgegeben.
+ ///
public User UpdatedUser { get; private set; }
+ ///
+ /// Konstruktor – befüllt die UI mit den bestehenden Benutzerwerten.
+ ///
+ /// Der zu bearbeitende Benutzer
public MitarbeiterBearbeitenDialog(User user)
{
InitializeComponent();
+ // Erzeuge eine Kopie mit übertragbaren Werten
UpdatedUser = new User
{
Username = user.Username,
- OriginalUsername = user.Username, // Speichern des alten Namens
+ OriginalUsername = user.Username, // für Identifikation bei Änderungen
Abteilung = user.Abteilung,
Mitarbeiternummer = user.Mitarbeiternummer
};
+ // Setze UI-Felder
UsernameBox.Text = user.Username;
AbteilungBox.Text = user.Abteilung;
MitarbeiternummerBox.Text = user.Mitarbeiternummer;
}
+ ///
+ /// Wird ausgeführt, wenn der Admin auf „Speichern“ klickt.
+ /// Änderungen werden übernommen und ggf. Passwort zurückgesetzt.
+ ///
private void SpeichernButton_Click(object? sender, RoutedEventArgs e)
{
+ // Aktualisiere Werte aus der Eingabe
UpdatedUser.Username = UsernameBox.Text ?? UpdatedUser.Username;
UpdatedUser.Abteilung = AbteilungBox.Text ?? UpdatedUser.Abteilung;
UpdatedUser.Mitarbeiternummer = MitarbeiternummerBox.Text ?? UpdatedUser.Mitarbeiternummer;
+ // Falls Passwort zurückgesetzt werden soll
+ if (ResetPasswordCheckbox.IsChecked == true)
+ {
+ UpdatedUser.Password = PasswordHasher.HashPassword("newpassword");
+ UpdatedUser.MussPasswortAendern = true; // Benutzer muss neues Passwort setzen
+ }
+
+ // Schließe Fenster und übergebe aktualisierten Benutzer
this.Close(UpdatedUser);
}
+ ///
+ /// Wird ausgeführt, wenn der Admin den Dialog ohne Änderungen verlässt.
+ ///
private void AbbrechenButton_Click(object? sender, RoutedEventArgs e)
{
this.Close(null);
}
-}
\ No newline at end of file
+}
diff --git a/ChronoFlow.View/ChronoFlow.View.csproj b/ChronoFlow.View/ChronoFlow.View.csproj
index 50db96a..7824523 100644
--- a/ChronoFlow.View/ChronoFlow.View.csproj
+++ b/ChronoFlow.View/ChronoFlow.View.csproj
@@ -8,11 +8,11 @@
-
-
+
+
-
-
+
+
diff --git a/ChronoFlow.View/Security/PasswortAendernDialog.axaml b/ChronoFlow.View/Security/PasswortAendernDialog.axaml
index 68c0bb1..6a8f430 100644
--- a/ChronoFlow.View/Security/PasswortAendernDialog.axaml
+++ b/ChronoFlow.View/Security/PasswortAendernDialog.axaml
@@ -8,10 +8,10 @@
-
+
-
+
diff --git a/ChronoFlow.View/Security/PasswortAendernDialog.axaml.cs b/ChronoFlow.View/Security/PasswortAendernDialog.axaml.cs
index 1b66a37..bcd8d85 100644
--- a/ChronoFlow.View/Security/PasswortAendernDialog.axaml.cs
+++ b/ChronoFlow.View/Security/PasswortAendernDialog.axaml.cs
@@ -9,11 +9,11 @@ public partial class PasswortAendernDialog : Window
public string NeuesPasswort { get; private set; } = "";
private readonly User _user;
- // Konstruktor mit Benutzerobjekt
public PasswortAendernDialog(User user)
{
InitializeComponent();
_user = user;
+ UsernameTextBlock.Text = $"Benutzer: {_user.Username}";
}
private void SpeichernButton_Click(object? sender, RoutedEventArgs e)