Klasse Benutzer

java.lang.Object
de.svws_nrw.db.Benutzer

public final class Benutzer extends Object
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.
  • Methodendetails

    • create

      public static Benutzer create(DBConfig config)
      Erstellt basierend auf der übergebenen Datenbank-Konfiguration DBConfig einen neuen Datenbank-Benutzer.
      Parameter:
      config - die Datenbank-Konfiguration.
      Gibt zurück:
      die neue Instanz des Benutzer
    • getConfig

      public DBConfig getConfig()
      Gibt die Datenbank-Konfiguration dieses Benutzers zurück.
      Gibt zurück:
      die Datenbank-Konfiguration dieses Benutzer
    • connectTo

      public Benutzer connectTo(String schema) throws DBException
      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

      public Benutzer connectTo(String schema, PersistenceUnits pu) throws DBException
      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
      pu - 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

      public static String erstellePasswortHash(String password)
      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

      public boolean hatVerwendeteKompetenz(BenutzerKompetenz kompetenz)
      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

      public boolean pruefeKompetenz(BenutzerKompetenz... kompetenzen)
      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

      public boolean pruefeKompetenz(Set<BenutzerKompetenz> kompetenzen)
      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

      public Long 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

      public void setId(Long id)
      Setzt die Datenbank-ID des angemeldeten SVWS-Benutzers.
      Parameter:
      id - die ID des SVWS-Benutzers
    • getUsername

      public String getUsername()
      Gibt den Benutzernamen zurück.
      Gibt zurück:
      der Benutzername
    • setUsername

      public void setUsername(String username)
      Setzt den Benutzernamen diese Benutzers.
      Parameter:
      username - der zu setzende Benutzername
    • getPassword

      public String getPassword()
      Gibt das Kennwort dieses Benutzers zurück.
      Gibt zurück:
      das Kennwort
    • setPassword

      public void setPassword(String password)
      Setzt das Kennwort dieses Benutzers.
      Parameter:
      password - das zu setzende Kennwort
    • getAES

      public AES 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

      public 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.
      Parameter:
      username - der Benutzername
      password - das Anmeldekennwort
      Gibt zurück:
      das AES-Verschlüsselungsobjekt
    • getKompetenzen

      public List<BenutzerKompetenz> getKompetenzen()
      Gibt die Liste der zugeorndeten Komptenzen zurück.
      Gibt zurück:
      die Liste der Benutzer-Kompetenzen
    • setKompetenzen

      public void setKompetenzen(List<BenutzerKompetenz> kompetenzen)
      Ordnet die übergebenen Kompetenzen diesem Benutzer zu.
      Parameter:
      kompetenzen - die Kompetenzen, die diesem Benutzer zugeordnet werden.
    • getEntityManager

      public DBEntityManager getEntityManager() throws DBException
      Gibt eine neue Instanz des DBEntityManager 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

      @NotNull public @NotNull SchuleStammdaten schuleGetStammdaten()
      Gibt die Stammdaten der Schule zurück.
      Gibt zurück:
      die Stammdaten der Schule
    • schuleSetStammdaten

      public void schuleSetStammdaten(SchuleStammdaten stammdaten)
      Setzt die Stammdaten der Schule und initialisiert die Map für den Zugriff auf die Schuljahresabschnitte.
      Parameter:
      stammdaten - die neuen Stammdaten
    • schuleGetAbschnittById

      public Schuljahresabschnitt schuleGetAbschnittById(long id)
      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

      public Schuljahresabschnitt schuleGetAbschnittBySchuljahrUndHalbjahr(int schuljahr, int halbjahr)
      Gibt den Schuljahresabschnitt zu dem Schuljahr und dem Halbjahr zurück oder null, wenn keiner existiert.
      Parameter:
      schuljahr - das Schuljahr
      halbjahr - 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

      @NotNull public @NotNull Schuljahresabschnitt schuleGetSchuljahresabschnitt()
      Bestimmt den aktuellen Schuljahresabschnitt der Schule
      Gibt zurück:
      der aktuelle Schuljahresabschnitt der Schule
    • schuleGetSchuljahresabschnittByIdOrDefault

      @NotNull public @NotNull Schuljahresabschnitt schuleGetSchuljahresabschnittByIdOrDefault(long id)
      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

      @NotNull public @NotNull Schulform schuleGetSchulform()
      Gibt die Schulform der Schule zurück.
      Gibt zurück:
      die Schulform der Schule
    • schuleGetSchulformKatalogEintrag

      @NotNull public @NotNull SchulformKatalogEintrag 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

      public Long 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

      public void setIdLehrer(Long idLehrer)
      Setzt die Lehrer-ID des angemeldeten Benutzers
      Parameter:
      idLehrer - die Lehrer-ID oder null, falls der angemeldete Benutzer kein Lehrer ist
    • setKlassenIDs

      public void setKlassenIDs(Collection<Long> idsKlassen)
      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

      public Set<Long> 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

      public void setLeitungsfunktionen(Collection<LehrerLeitungsfunktion> funktionen)
      Setzt die aktuellen Leitungsfunktionen, welche dem Benutzer zugeordnet sind.
      Parameter:
      funktionen - die Leitungsfunktionen
    • getLeitungsfunktionen

      public Set<LehrerLeitungsfunktion> getLeitungsfunktionen()
      Gibt die aktuellen Leitungsfunktionen zurück, welche dem Benutzer zugeordnet sind.
      Gibt zurück:
      die Leitungsfunktionen
    • setAbiturjahrgaenge

      public void setAbiturjahrgaenge(Collection<Integer> abijahrgaenge)
      Setzt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.
      Parameter:
      abijahrgaenge - die Abiturjahrgänge
    • getAbiturjahrgaenge

      public Set<Integer> getAbiturjahrgaenge()
      Gibt die Abiturjahrgänge, in welchen der Benutzer Beratungslehrer ist.
      Gibt zurück:
      die Abiturjahrgänge