Package de.svws_nrw.db
Klasse Benutzer
java.lang.Object
de.svws_nrw.db.Benutzer
Diese Klasse repräsentiert u.a. bei einem OpenAPI-Zugriff den angemeldeten Benutzer
bei einer SVWS-Datenbank. Für den Datenbankzugriff wird intern eine Instanz der Klasse
DBEntityManager
verwendet.-
Methodenübersicht
Modifizierer und TypMethodeBeschreibungErstellt eine neue Verbindung mit den gleichen Verbindungsinformationen, aber zu einem anderen Schema.connectTo
(String schema, PersistenceUnits pu) Erstellt eine neue Verbindung mit den gleichen Verbindungsinformationen, aber zu einem anderen Schema.static Benutzer
static String
erstellePasswortHash
(String password) Erstellt zu dem angegeben Kennwort einen Passwort-Hash mit dem BCrypt-Algorithmus.Gibt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.getAES()
Gibt das AES-Objekt zur Verschlüsselung von Benutzerspezifischen Daten zurück.static AES
getAESInstance
(String username, String password) Erzeugt eine Instanz für die AES-Verschlüsselung basierend auf dem Benutzernamen und dem Kennwort des angemeldeten Benutzers.Gibt die Datenbank-Konfiguration dieses Benutzers zurück.Gibt eine neue Instanz desDBEntityManager
zurück, die diesem Benutzer für den Datenbank-Zugriff zugeordnet ist.getId()
Gibt im Falle eines Open-API-Zugriffs die Datenbank-ID des angemeldeten SVWS-Benutzers zurück.Gibt die Lehrer-ID des angemeldeten Benutzers zurück, sofern ein Lehrer angemeldet ist.Gibt die IDs der Klasse zurück, bei welchen der Benutzer einen vollständigen Zugriff bei funktionsbezogenenen Operationen erhält.Gibt die Liste der zugeorndeten Komptenzen zurück.Gibt die aktuellen Leitungsfunktionen zurück, welche dem Benutzer zugeordnet sind.Gibt das Kennwort dieses Benutzers zurück.Gibt den Benutzernamen zurück.boolean
hatVerwendeteKompetenz
(BenutzerKompetenz kompetenz) Prüft, ob die übergebene Kompetenz bei der Anmeldung verwendet wurde oder nicht.boolean
istAdmin()
Prüft, ob es sich bei dem Benutzer um einen Admin-Benutzer mit allen Kompetenzen handelt.boolean
pruefeKompetenz
(BenutzerKompetenz... kompetenzen) Prüft, ob der Benutzer eine der übergeben Kompetenz eingeräumt wurde oder nicht.boolean
pruefeKompetenz
(Set<BenutzerKompetenz> kompetenzen) Prüft, ob der Benutzer eine der übergeben Kompetenz eingeräumt wurde oder nicht.int
Gibt den aktuellen Abschnitt im Schuljahr der Schule zurück.schuleGetAbschnittById
(long id) Gibt den Schuljahresabschnitt zu der ID zurück oder null, wenn keiner für die ID existiert.schuleGetAbschnittBySchuljahrUndHalbjahr
(int schuljahr, int halbjahr) Gibt den Schuljahresabschnitt zu dem Schuljahr und dem Halbjahr zurück oder null, wenn keiner existiert.@NotNull List
<Schuljahresabschnitt> schuleGetAbschnitteBySchuljahre
(int... schuljahre) Bestimmt die Liste der Schuljahresabschnitte zu den übergebenen Schuljahren@NotNull Schulform
Gibt die Schulform der Schule zurück.@NotNull SchulformKatalogEintrag
Gibt den Katalog-Eintrag für die Schulform und das aktuelle Schuljahr der Schule zurück.int
Gibt das aktuelle Schuljahr der Schule zurück.@NotNull Schuljahresabschnitt
Bestimmt den aktuellen Schuljahresabschnitt der Schule@NotNull Schuljahresabschnitt
Bestimmt den Schuljahresabschnitt für die angebene ID oder als alternative den der Schule@NotNull SchuleStammdaten
Gibt die Stammdaten der Schule zurück.boolean
Gibt zurück, ob die Schulform dieser Schule eine gymnasiale Oberstufe erlaubt oder nicht.void
schuleSetStammdaten
(SchuleStammdaten stammdaten) Setzt die Stammdaten der Schule und initialisiert die Map für den Zugriff auf die Schuljahresabschnitte.void
setAbiturjahrgaenge
(Collection<Integer> abijahrgaenge) Setzt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.void
setAES()
Setzt das AES-Objekt zur Verschlüsselung von Benuterspezifischen Daten in Bezug auf den aktuellen Benutzernamen und seinem Kennwort.void
Setzt die Datenbank-ID des angemeldeten SVWS-Benutzers.void
setIdLehrer
(Long idLehrer) Setzt die Lehrer-ID des angemeldeten Benutzersvoid
setKlassenIDs
(Collection<Long> idsKlassen) Setzt die IDs der Klassen, bei welchen der Benutzer einen vollständigen Zugriff bei funktionsbezogenenen Operationen erhält.void
setKompetenzen
(List<BenutzerKompetenz> kompetenzen) Ordnet die übergebenen Kompetenzen diesem Benutzer zu.void
setLeitungsfunktionen
(Collection<LehrerLeitungsfunktion> funktionen) Setzt die aktuellen Leitungsfunktionen, welche dem Benutzer zugeordnet sind.void
setPassword
(String password) Setzt das Kennwort dieses Benutzers.void
setUsername
(String username) Setzt den Benutzernamen diese Benutzers.
-
Methodendetails
-
create
Erstellt basierend auf der übergebenen Datenbank-KonfigurationDBConfig
einen neuen Datenbank-Benutzer
.- Parameter:
config
- die Datenbank-Konfiguration.- Gibt zurück:
- die neue Instanz des
Benutzer
-
getConfig
Gibt die Datenbank-Konfiguration dieses Benutzers zurück.- Gibt zurück:
- die Datenbank-Konfiguration dieses Benutzer
-
connectTo
Erstellt eine neue Verbindung mit den gleichen Verbindungsinformationen, aber zu einem anderen Schema. Anmerkung: ein identischer Schema-Name wird als Sonderfall auch zugelassen.- Parameter:
schema
- der Name des Schemas für die neue Verbindung- Gibt zurück:
- der Benutzer für den Datenbankzugriff, oder null im Fehlerfall
- Löst aus:
DBException
- wenn die Authentifizierung fehlschlägt
-
connectTo
Erstellt eine neue Verbindung mit den gleichen Verbindungsinformationen, aber zu einem anderen Schema. Anmerkung: ein identischer Schema-Name wird als Sonderfall auch zugelassen.- Parameter:
schema
- der Name des Schemas für die neue Verbindungpu
- die zu verwendende Persistence-Unit- Gibt zurück:
- der Benutzer für den Datenbankzugriff, oder null im Fehlerfall
- Löst aus:
DBException
- wenn die Authentifizierung fehlschlägt
-
erstellePasswortHash
Erstellt zu dem angegeben Kennwort einen Passwort-Hash mit dem BCrypt-Algorithmus. Dabei wird ein zufälliger Wert für den Salt verwendet.- Parameter:
password
- das Kennwort im Klartext.- Gibt zurück:
- der Hash des Kennwortes
-
hatVerwendeteKompetenz
Prüft, ob die übergebene Kompetenz bei der Anmeldung verwendet wurde oder nicht.- Parameter:
kompetenz
- die auf Verwendung zu prüfende Kompetenz- Gibt zurück:
- true, wenn die Kompetenz verwendet wurde und ansonsten false
-
istAdmin
public boolean istAdmin()Prüft, ob es sich bei dem Benutzer um einen Admin-Benutzer mit allen Kompetenzen handelt.- Gibt zurück:
- true, falls es sich um einen Admin-Benutzer mit allen Kompetenzen handelt und ansonsten false
-
pruefeKompetenz
Prüft, ob der Benutzer eine der übergeben Kompetenz eingeräumt wurde oder nicht. Hierbei findet zunächst eine Prüfung auf einen Admin-Benutzer mit vollen Rechten statt. Ist dies ein Admin-Benutzer, so hat er die Kompetenz ohne dass weiter geprüft werden muss.- Parameter:
kompetenzen
- die zu prüfenden Kompetenzen oder BenutzerKompetenz.KEINE- Gibt zurück:
- true, im Falle von BenutzerKompetenz.KEINE als zu prüfende Kompetenz oder wenn der Benutzer die übergebene Kompetenz besitzt. Anonsten wird false zurückgegeben.
-
pruefeKompetenz
Prüft, ob der Benutzer eine der übergeben Kompetenz eingeräumt wurde oder nicht. Hierbei findet zunächst eine Prüfung auf einen Admin-Benutzer mit vollen Rechten statt. Ist dies ein Admin-Benutzer, so hat er die Kompetenz ohne dass weiter geprüft werden muss.- Parameter:
kompetenzen
- die zu prüfenden Kompetenzen oder BenutzerKompetenz.KEINE- Gibt zurück:
- true, im Falle von BenutzerKompetenz.KEINE als zu prüfende Kompetenz oder wenn der Benutzer die übergebene Kompetenz besitzt. Anonsten wird false zurückgegeben.
-
getId
Gibt im Falle eines Open-API-Zugriffs die Datenbank-ID des angemeldeten SVWS-Benutzers zurück.- Gibt zurück:
- die Datenbank-ID des Benutzer oder null
-
setId
Setzt die Datenbank-ID des angemeldeten SVWS-Benutzers.- Parameter:
id
- die ID des SVWS-Benutzers
-
getUsername
Gibt den Benutzernamen zurück.- Gibt zurück:
- der Benutzername
-
setUsername
Setzt den Benutzernamen diese Benutzers.- Parameter:
username
- der zu setzende Benutzername
-
getPassword
Gibt das Kennwort dieses Benutzers zurück.- Gibt zurück:
- das Kennwort
-
setPassword
Setzt das Kennwort dieses Benutzers.- Parameter:
password
- das zu setzende Kennwort
-
getAES
Gibt das AES-Objekt zur Verschlüsselung von Benutzerspezifischen Daten zurück.- Gibt zurück:
- das AES-Verschlüsselungsobjekt
-
setAES
public void setAES()Setzt das AES-Objekt zur Verschlüsselung von Benuterspezifischen Daten in Bezug auf den aktuellen Benutzernamen und seinem Kennwort. -
getAESInstance
Erzeugt eine Instanz für die AES-Verschlüsselung basierend auf dem Benutzernamen und dem Kennwort des angemeldeten Benutzers.- Parameter:
username
- der Benutzernamepassword
- das Anmeldekennwort- Gibt zurück:
- das AES-Verschlüsselungsobjekt
-
getKompetenzen
Gibt die Liste der zugeorndeten Komptenzen zurück.- Gibt zurück:
- die Liste der Benutzer-Kompetenzen
-
setKompetenzen
Ordnet die übergebenen Kompetenzen diesem Benutzer zu.- Parameter:
kompetenzen
- die Kompetenzen, die diesem Benutzer zugeordnet werden.
-
getEntityManager
Gibt eine neue Instanz desDBEntityManager
zurück, die diesem Benutzer für den Datenbank-Zugriff zugeordnet ist. Diese repräsentiert gleichzeitig eine neue Verbindung.- Gibt zurück:
- die Instanz des
DBEntityManager
- Löst aus:
DBException
- bei einem Fehler im Verbindungsaufbau
-
schuleGetStammdaten
Gibt die Stammdaten der Schule zurück.- Gibt zurück:
- die Stammdaten der Schule
-
schuleSetStammdaten
Setzt die Stammdaten der Schule und initialisiert die Map für den Zugriff auf die Schuljahresabschnitte.- Parameter:
stammdaten
- die neuen Stammdaten
-
schuleGetAbschnittById
Gibt den Schuljahresabschnitt zu der ID zurück oder null, wenn keiner für die ID existiert.- Parameter:
id
- die ID des Schuljahresabschnitts- Gibt zurück:
- der Schuljahresabschnitt oder null
-
schuleGetAbschnittBySchuljahrUndHalbjahr
Gibt den Schuljahresabschnitt zu dem Schuljahr und dem Halbjahr zurück oder null, wenn keiner existiert.- Parameter:
schuljahr
- das Schuljahrhalbjahr
- das Halbjar- Gibt zurück:
- der Schuljahresabschnitt oder null
-
schuleGetAbschnitteBySchuljahre
@NotNull public @NotNull List<Schuljahresabschnitt> schuleGetAbschnitteBySchuljahre(int... schuljahre) Bestimmt die Liste der Schuljahresabschnitte zu den übergebenen Schuljahren- Parameter:
schuljahre
- die Schuljahre- Gibt zurück:
- die Liste der Schuljahresabschnitte
-
schuleGetSchuljahresabschnitt
Bestimmt den aktuellen Schuljahresabschnitt der Schule- Gibt zurück:
- der aktuelle Schuljahresabschnitt der Schule
-
schuleGetSchuljahresabschnittByIdOrDefault
Bestimmt den Schuljahresabschnitt für die angebene ID oder als alternative den der Schule- Parameter:
id
- die ID des Schuljahresabschnitts- Gibt zurück:
- der Schuljahresabschnitt für ID oder der der Schule, falls die ID ungültig ist
-
schuleGetSchuljahr
public int schuleGetSchuljahr()Gibt das aktuelle Schuljahr der Schule zurück.- Gibt zurück:
- das aktuelle Schuljahr der Schule
-
schuleGetAbschnitt
public int schuleGetAbschnitt()Gibt den aktuellen Abschnitt im Schuljahr der Schule zurück.- Gibt zurück:
- der aktuelle Abschnitt
-
schuleGetSchulform
Gibt die Schulform der Schule zurück.- Gibt zurück:
- die Schulform der Schule
-
schuleGetSchulformKatalogEintrag
Gibt den Katalog-Eintrag für die Schulform und das aktuelle Schuljahr der Schule zurück.- Gibt zurück:
- der Schulform-Katalog-Eintrag
-
schuleHatGymOb
public boolean schuleHatGymOb()Gibt zurück, ob die Schulform dieser Schule eine gymnasiale Oberstufe erlaubt oder nicht.- Gibt zurück:
- true, wenn die Schule eine gymnasiale Oberstufe hat, und false, wenn nicht.
-
getIdLehrer
Gibt die Lehrer-ID des angemeldeten Benutzers zurück, sofern ein Lehrer angemeldet ist.- Gibt zurück:
- die Lehrer-ID oder null, falls der angemeldete Benutzer kein Lehrer ist
-
setIdLehrer
Setzt die Lehrer-ID des angemeldeten Benutzers- Parameter:
idLehrer
- die Lehrer-ID oder null, falls der angemeldete Benutzer kein Lehrer ist
-
setKlassenIDs
Setzt die IDs der Klassen, bei welchen der Benutzer einen vollständigen Zugriff bei funktionsbezogenenen Operationen erhält. Dies kann z.B. durch die Tätigkeit als Klassenlehrer oder auch durch die Tätigkeit als Abteilungsleiter erfolgen.- Parameter:
idsKlassen
- die IDs der Klassen
-
getKlassenIDs
Gibt die IDs der Klasse zurück, bei welchen der Benutzer einen vollständigen Zugriff bei funktionsbezogenenen Operationen erhält. Dies kann z.B. durch die Tätigkeit als Klassenlehrer oder auch durch die Tätigkeit als Abteilungsleiter erfolgen.- Gibt zurück:
- die IDs der Klassen
-
setLeitungsfunktionen
Setzt die aktuellen Leitungsfunktionen, welche dem Benutzer zugeordnet sind.- Parameter:
funktionen
- die Leitungsfunktionen
-
getLeitungsfunktionen
Gibt die aktuellen Leitungsfunktionen zurück, welche dem Benutzer zugeordnet sind.- Gibt zurück:
- die Leitungsfunktionen
-
setAbiturjahrgaenge
Setzt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.- Parameter:
abijahrgaenge
- die Abiturjahrgänge
-
getAbiturjahrgaenge
Gibt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.- Gibt zurück:
- die Abiturjahrgänge
-