Klasse DBBenutzerUtils

java.lang.Object
de.svws_nrw.data.benutzer.DBBenutzerUtils

public final class DBBenutzerUtils extends Object
Diese Klasse stellt allgemeine Methoden bezüglich eines Datenbank-Benutzers zur Verfügung.
  • Methodendetails

    • leseKompetenzen

      public static void leseKompetenzen(Benutzer user) throws DBException
      Diese Methode liest die Kompetenzen des Benutzers ein und speichert diese Information bei dem übergebenen Benutzer-Objekt. Anmerkung: Diese Methode benutzt dabei die DTO-Klasse DTOUsers, weshalb sie nicht in die Klasse Benutzer integriert werden kann.
      Parameter:
      user - der Benutzer dessen Kompetenzen eingelesen werden sollen
      Löst aus:
      DBException - wenn ein Verbindungsfehler auftritt
    • pruefePasswort

      public static boolean pruefePasswort(Benutzer user, String password) throws DBException
      Prüft, ob das übergebene Passwort bei dem übergebenen Benutzer gültig ist. Anmerkung: Diese Methode benutzt dabei die DTO-Klasse DTOUsers, weshalb sie nicht in die Klasse Benutzer integriert werden kann.
      Parameter:
      user - der Benutzer, bei dem das Kennwort geprüft werden soll
      password - das zu prüfende Kennwort
      Gibt zurück:
      true, falls das Kennwort gültig ist, und ansonsten false
      Löst aus:
      DBException - wenn ein Verbindungsfehler auftritt
    • getSVWSUser

      public static Benutzer getSVWSUser(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen) throws ApiOperationException
      Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt.
      Parameter:
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      der aktuelle SVWS-Benutzer, falls ein Benutzer mit der Kompetenz angemeldet ist
      Löst aus:
      ApiOperationException - Ist kein Benutzer angemeldet oder besitzt nicht die erforderliche Kompetenz, so wird eine ApiOperationException mit dem HTTP Status Code FORBIDDEN (403) generiert
    • getDBConnection

      public static DBEntityManager getDBConnection(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen) throws ApiOperationException
      Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Anschließend wird eine DBEntityManager Instanz für den Datenbankzugriff zurückgegeben.
      Parameter:
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Datenbankverbindung für den aktuellen SVWS-Benutzer, falls ein Benutzer mit der Kompetenz angemeldet ist
      Löst aus:
      ApiOperationException - Ist kein Benutzer angemeldet oder besitzt nicht die erforderliche Kompetenz, so wird eine ApiOperationException mit dem HTTP Status Code FORBIDDEN (403) generiert
    • getDBConnectionAllowSelf

      public static DBEntityManager getDBConnectionAllowSelf(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, long user_id, BenutzerKompetenz... kompetenzen) throws ApiOperationException
      Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Erlaubt wird auch der Zugriff von dem Benutzer mit der übergebenen Benutzer-ID. Anschließend wird eine DBEntityManager Instanz für den Datenbankzugriff zurückgegeben.
      Parameter:
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      user_id - die zu prüfende Benutzer-ID (ist dies die ID des angemeldeten Benutzers?)
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Datenbankverbindung für den aktuellen SVWS-Benutzer, falls ein Benutzer mit der Kompetenz angemeldet ist
      Löst aus:
      ApiOperationException - Ist kein Benutzer angemeldet oder besitzt nicht die erforderliche Kompetenz, so wird eine ApiOperationException mit dem HTTP Status Code FORBIDDEN (403) generiert
    • run

      public static jakarta.ws.rs.core.Response run(Callable<jakarta.ws.rs.core.Response> task, jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Hierfür wird der aktuelle SVWS-Benutzer anhand des HTTP-Requests ermittelt und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt.
      Parameter:
      task - die auszuführende Aufgabe
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Response zu der Aufgabe
    • runWithoutTransaction

      public static jakarta.ws.rs.core.Response runWithoutTransaction(ThrowingFunction<DBEntityManager,jakarta.ws.rs.core.Response> task, jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Hierfür wird der aktuelle SVWS-Benutzer anhand des HTTP-Requests ermittelt und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Die dabei erstellte DBEntityManager-Instanz wird dabei für den Datenbankzugriff genutzt. Wichtig: Es wird keine Transaktion für die Aufgabe erzeugt. Dies muss von der Aufgabe gemacht werden.
      Parameter:
      task - die auszuführende Aufgabe
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Response zu der Aufgabe
    • runWithTransaction

      public static jakarta.ws.rs.core.Response runWithTransaction(ThrowingFunction<DBEntityManager,jakarta.ws.rs.core.Response> task, DBEntityManager conn)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Hierbei wird die übergebene DBEntityManager-Instanz wird für den Datenbankzugriff genutzt. Wichtig: Eine Transaktion für die Aufgabe wird erzeugt und von dieser Methode gehandhabt!
      Parameter:
      task - die auszuführende Aufgabe
      conn - die Datenbank-Verbindung
      Gibt zurück:
      die Response zu der Aufgabe
    • runWithTransaction

      public static jakarta.ws.rs.core.Response runWithTransaction(ThrowingFunction<DBEntityManager,jakarta.ws.rs.core.Response> task, jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Hierfür wird der aktuelle SVWS-Benutzer anhand des HTTP-Requests ermittelt und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Die dabei erstellte DBEntityManager-Instanz wird dabei für den Datenbankzugriff genutzt. Wichtig: Eine Transaktion für die Aufgabe wird erzeugt und von dieser Methode gehandhabt!
      Parameter:
      task - die auszuführende Aufgabe
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Response zu der Aufgabe
    • runWithTransactionOnErrorSimpleResponse

      public static jakarta.ws.rs.core.Response runWithTransactionOnErrorSimpleResponse(ThrowingFunction<DBEntityManager,jakarta.ws.rs.core.Response> task, jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Im Fehlerfall wird eine SimpleOperationRespose zurückgegeben. Hierfür wird der aktuelle SVWS-Benutzer anhand des HTTP-Requests ermittelt und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Die dabei erstellte DBEntityManager-Instanz wird dabei für den Datenbankzugriff genutzt. Wichtig: Eine Transaktion für die Aufgabe wird erzeugt und von dieser Methode gehandhabt!
      Parameter:
      task - die auszuführende Aufgabe
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Response zu der Aufgabe
    • runWithTransactionAllowSelf

      public static jakarta.ws.rs.core.Response runWithTransactionAllowSelf(ThrowingFunction<DBEntityManager,jakarta.ws.rs.core.Response> task, jakarta.servlet.http.HttpServletRequest request, ServerMode mode, long user_id, BenutzerKompetenz... kompetenzen)
      Führt die übergebene Aufgabe auf der Datenbank aus und gibt bei Erfolg die Response der Aufgabe zurück. Hierfür wird der aktuelle SVWS-Benutzer anhand des HTTP-Requests ermittelt und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt. Bei dieser Methode wird auch der Zugriff von dem Benutzer mit der übergebenen Benutzer-ID erlaubt. Die dabei erstellte DBEntityManager-Instanz wird dabei für den Datenbankzugriff genutzt. Wichtig: Eine Transaktion für die Aufgabe wird erzeugt und von dieser Methode gehandhabt!
      Parameter:
      task - die auszuführende Aufgabe
      request - das HTTP-Request-Objekt
      mode - der benötigte Server-Mode für den API-Zugriff
      user_id - die zu prüfende Benutzer-ID (ist dies die ID des angemeldeten Benutzers?)
      kompetenzen - die zu prüfenden Kompetenzen
      Gibt zurück:
      die Response zu der Aufgabe