Package de.svws_nrw.data.benutzer
Klasse DBBenutzerUtils
java.lang.Object
de.svws_nrw.data.benutzer.DBBenutzerUtils
Diese Klasse stellt allgemeine Methoden bezüglich eines Datenbank-Benutzers zur Verfügung.
-
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic DBEntityManager
getDBConnection
(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen) Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt.static DBEntityManager
getDBConnectionAllowSelf
(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, long user_id, BenutzerKompetenz... kompetenzen) Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt.static Benutzer
getSVWSUser
(jakarta.servlet.http.HttpServletRequest request, ServerMode mode, BenutzerKompetenz... kompetenzen) Ermittelt den aktuellen SVWS-Benutzer anhand des HTTP-Requests und überprüft, ob der Benutzer entweder Admin-Rechte oder eine der übergebenen Kompetenzen besitzt.static void
leseKompetenzen
(Benutzer user) Diese Methode liest die Kompetenzen des Benutzers ein und speichert diese Information bei dem übergebenen Benutzer-Objekt.static boolean
pruefePasswort
(Benutzer user, String password) Prüft, ob das übergebene Passwort bei dem übergebenen Benutzer gültig ist.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.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.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.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.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.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.
-
Methodendetails
-
leseKompetenzen
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
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 sollpassword
- 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-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 eineDBEntityManager
Instanz für den Datenbankzugriff zurückgegeben.- Parameter:
request
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 eineDBEntityManager
Instanz für den Datenbankzugriff zurückgegeben.- Parameter:
request
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffuser_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 Aufgaberequest
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 erstellteDBEntityManager
-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 Aufgaberequest
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 übergebeneDBEntityManager
-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 Aufgabeconn
- 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 erstellteDBEntityManager
-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 Aufgaberequest
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 erstellteDBEntityManager
-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 Aufgaberequest
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffkompetenzen
- 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 erstellteDBEntityManager
-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 Aufgaberequest
- das HTTP-Request-Objektmode
- der benötigte Server-Mode für den API-Zugriffuser_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
-