Clock - Technische Spezifikation
  • Über das Projekt
  • Datenbank Referenz
    • Einleitendes
    • User Model
    • Contract Model
    • Shift Model
    • ClockedInShift Model
    • Report Model
  • User Stories
    • Einleitendes
    • User
    • Shift
    • Contract
    • Allgemeines
  • Business rules
    • Einleitendes
    • User Model
    • Shift Model
    • ClockedInShift Model
    • Contract Model
    • Report Model
Powered by GitBook
On this page
  1. Datenbank Referenz

User Model

Definition des User Models

PreviousEinleitendesNextContract Model

Last updated 4 years ago

Das User-Model dient zur Repräsentation der Kerndaten eines Benutzers, welche zur Identifikation und Nutzung des Services nötig sind. Bei der folgenden Definition entsprechen der Feldname dem Namen des Feldes im Code, der Feldtyp der Feldklasse im Code und die Nutzung der angedachten Verwendung des Feldes (falls nicht eindeutig ersichtlich):

Feldname

Feld Type

Nutzung

id

UUIDField(primary_key= True, default=uuid.uuid4, editable=False, unique=True)

Eine wird zur Identifikation eines Users in der Datenbank benutzt

username

CharField()

Username des Users

password

CharField()

Passwort des Users

email

EmailField(unique=True)

Emailadresse des Users

first_name

CharField()

Vorname

last_name

CharField()

Nachname

personal_number

CharField(default="")

Die Personalnummer wird für den Stundenzettel benötigt und ändert sich nie

language

CharField(choices=("de", "en"), default="en")

Die vom user präfereierte Spracheinstellung

created_at

DateTimeField(auto_now_add=True)

Timestamp (Zeitpunkt), wann der Usereintrag erstellt wurde

modified_at

DateTimeField(auto_now=True)

Timestamp, wann der Usereintrag zuletzt geändert wurde

---------

-----------

--------

Diese Tabelle stellt alle Daten dar, welche ein Nutzer dem Service zur Verfügung stellt bzw. die über den Nutzer beim erstmaligen Registrieren gespeichert werden. Hierbei ist es wichtig anzumerken, dass auf die Verwendung einfacher ID's verzichtet wird, um spätere API-Abfragen von Nutzerdaten zu anonymisieren.

Bemerkung:

Das User Model erbt vom in Django bereits vorgesehenen built-in Model . Der Grund hierfür ist, dass soviel Django-Code wie möglich benutzt werden soll. Dies bedeutet speziell, dass das Authentifizierungssystem (Identitätsprüfung), das Admin-Interface (Oberfläche zur Verwaltung der Datenbank) und das Permission-Handling (Berechtigungsmanagement) von Django verwendet werden können.

Hinweis: Da Clock keinen Usernamen benötigt, sondern der Login über die E-mailadresse abgewickelt wird, ist das Feld username (geerbt von AbstractUser) obsolet. Da aus oben genannten Gründen das Erben von AbstractUser gewünscht ist, wird bei der Erstellung eines Users dessen E-mailadresse ebenfalls in das Feld username gespeichert.

AbstractUser
UUID