79 lines
2.5 KiB
C#
79 lines
2.5 KiB
C#
using System;
|
||
|
||
namespace ChronoFlow.Model
|
||
{
|
||
/// <summary>
|
||
/// Repräsentiert einen Benutzer im System (Mitarbeiter oder Admin).
|
||
/// Wird für Authentifizierung, Rechteverwaltung und Zuordnung verwendet.
|
||
/// </summary>
|
||
public class User
|
||
{
|
||
/// <summary>
|
||
/// Der Benutzername, der zur Anmeldung verwendet wird.
|
||
/// </summary>
|
||
public string Username { get; set; }
|
||
|
||
/// <summary>
|
||
/// Das gehashte Passwort des Benutzers.
|
||
/// </summary>
|
||
public string Password { get; set; }
|
||
|
||
/// <summary>
|
||
/// Rolle des Benutzers, z.B. "Admin" oder "Mitarbeiter".
|
||
/// </summary>
|
||
public string Role { get; set; }
|
||
|
||
/// <summary>
|
||
/// Interne Mitarbeiternummer, optional.
|
||
/// </summary>
|
||
public string Mitarbeiternummer { get; set; }
|
||
|
||
/// <summary>
|
||
/// Abteilung des Mitarbeiters, z.B. „Produktion“, „IT“, etc.
|
||
/// </summary>
|
||
public string Abteilung { get; set; }
|
||
|
||
/// <summary>
|
||
/// Primärschlüssel in der Datenbank.
|
||
/// </summary>
|
||
public int Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// Der ursprüngliche Benutzername – wird z.B. für Updates verwendet,
|
||
/// um Namensänderungen korrekt zu verarbeiten.
|
||
/// </summary>
|
||
public string OriginalUsername { get; set; }
|
||
|
||
/// <summary>
|
||
/// Gibt an, ob der Benutzer beim nächsten Login sein Passwort ändern muss.
|
||
/// Wird z.B. bei neu erstellten Konten gesetzt.
|
||
/// </summary>
|
||
public bool MussPasswortAendern { get; set; }
|
||
|
||
/// <summary>
|
||
/// Letzter erfolgreicher Login des Benutzers.
|
||
/// Dient z.B. zur Änderungsverfolgung von Projekten seit dem letzten Login.
|
||
/// </summary>
|
||
public DateTime LetzterLogin { get; set; } = DateTime.MinValue;
|
||
|
||
/// <summary>
|
||
/// Vorheriger Login-Zeitpunkt – wird beim nächsten Login zu LetzterLogin verschoben.
|
||
/// Ermöglicht die Erkennung von Änderungen zwischen zwei Sessions.
|
||
/// </summary>
|
||
public DateTime VorletzterLogin { get; set; }
|
||
|
||
/// <summary>
|
||
/// Konstruktor initialisiert leere Zeichenketten zur Vermeidung von Nullwerten.
|
||
/// </summary>
|
||
public User()
|
||
{
|
||
Username = "";
|
||
Password = "";
|
||
Role = "";
|
||
Mitarbeiternummer = "";
|
||
Abteilung = "";
|
||
OriginalUsername = "";
|
||
}
|
||
}
|
||
}
|