From 146aba1157bb545e7403285aa7c0c479319cd177 Mon Sep 17 00:00:00 2001 From: Viperion Date: Sun, 29 Jun 2025 17:50:02 +0200 Subject: [PATCH] Final Changes --- ChronoFlow.Model/User.cs | 62 +++++- .../Admin/AbgeschlosseneProjekteView.axaml | 36 +++- ChronoFlow.View/Admin/AdminMainView.axaml.cs | 2 +- ChronoFlow.View/Admin/ConfirmDialog.axaml | 26 ++- .../Admin/MitarbeiterListeView.axaml | 51 ++++- .../Admin/ProjektErstellenView.axaml | 94 ++++----- .../Admin/ProjektErstellenView.axaml.cs | 198 +++++++++++------- .../Converter/BoolToBrushConverter.cs | 29 ++- ChronoFlow.View/LoginWindow.axaml.cs | 20 +- ChronoFlow.View/MainWindow.axaml.cs | 2 +- .../Mitarbeiter/EmployeeTasksViewModel.cs | 48 +++-- .../Mitarbeiter/MitarbeiterMainView.axaml.cs | 2 +- .../MitarbeiterHinzufuegenView.axaml.cs | 53 +++-- .../Security/PasswortAendernDialog.axaml | 35 +++- 14 files changed, 444 insertions(+), 214 deletions(-) diff --git a/ChronoFlow.Model/User.cs b/ChronoFlow.Model/User.cs index c72a780..1b9819d 100644 --- a/ChronoFlow.Model/User.cs +++ b/ChronoFlow.Model/User.cs @@ -1,18 +1,70 @@ +using System; + namespace ChronoFlow.Model { + /// + /// Repräsentiert einen Benutzer im System (Mitarbeiter oder Admin). + /// Wird für Authentifizierung, Rechteverwaltung und Zuordnung verwendet. + /// public class User { + /// + /// Der Benutzername, der zur Anmeldung verwendet wird. + /// public string Username { get; set; } + + /// + /// Das gehashte Passwort des Benutzers. + /// public string Password { get; set; } + + /// + /// Rolle des Benutzers, z.B. "Admin" oder "Mitarbeiter". + /// public string Role { get; set; } + + /// + /// Interne Mitarbeiternummer, optional. + /// public string Mitarbeiternummer { get; set; } + + /// + /// Abteilung des Mitarbeiters, z.B. „Produktion“, „IT“, etc. + /// public string Abteilung { get; set; } - + + /// + /// Primärschlüssel in der Datenbank. + /// public int Id { get; set; } - public string OriginalUsername { get; set; } // wichtig für Updates - + + /// + /// Der ursprüngliche Benutzername – wird z.B. für Updates verwendet, + /// um Namensänderungen korrekt zu verarbeiten. + /// + public string OriginalUsername { get; set; } + + /// + /// Gibt an, ob der Benutzer beim nächsten Login sein Passwort ändern muss. + /// Wird z.B. bei neu erstellten Konten gesetzt. + /// public bool MussPasswortAendern { get; set; } + /// + /// Letzter erfolgreicher Login des Benutzers. + /// Dient z.B. zur Änderungsverfolgung von Projekten seit dem letzten Login. + /// + public DateTime LetzterLogin { get; set; } = DateTime.MinValue; + + /// + /// Vorheriger Login-Zeitpunkt – wird beim nächsten Login zu LetzterLogin verschoben. + /// Ermöglicht die Erkennung von Änderungen zwischen zwei Sessions. + /// + public DateTime VorletzterLogin { get; set; } + + /// + /// Konstruktor initialisiert leere Zeichenketten zur Vermeidung von Nullwerten. + /// public User() { Username = ""; @@ -22,7 +74,5 @@ namespace ChronoFlow.Model Abteilung = ""; OriginalUsername = ""; } - public DateTime LetzterLogin { get; set; } = DateTime.MinValue; - public DateTime VorletzterLogin { get; set; } } -} \ No newline at end of file +} diff --git a/ChronoFlow.View/Admin/AbgeschlosseneProjekteView.axaml b/ChronoFlow.View/Admin/AbgeschlosseneProjekteView.axaml index 3d9ea3e..947768b 100644 --- a/ChronoFlow.View/Admin/AbgeschlosseneProjekteView.axaml +++ b/ChronoFlow.View/Admin/AbgeschlosseneProjekteView.axaml @@ -2,25 +2,53 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:model1="clr-namespace:ChronoFlow.Model;assembly=ChronoFlow.Model" x:Class="ChronoFlow.View.Admin.AbgeschlosseneProjekteView"> + + - - + + + + + + + + + + + + + + -