Class BenutzerService
- java.lang.Object
-
- de.fhdw.hfw417.dokumentenpostfach.service.BenutzerService
-
@Service public class BenutzerService extends Object
Service-Klasse zuStandardBenutzer
-Objekten. Dient als Schnittstelle zur Datenbank.
-
-
Constructor Summary
Constructors Constructor Description BenutzerService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AuthBenutzerDTO
erstelleBenutzer(BenutzerDTO benutzerDTO, Principal userPrincipal)
Erstellt einenAuthBenutzerDTO
aus demBenutzerDTO
.AuthBenutzerDTO
fuehreBenutzerZusammen(MergeBenutzerDTO mergeBenutzerDTO, Principal userPrincipal)
Fuehrt zwei Benutzer zusammen.AbstractBenutzer
getBenutzer(String benutzer)
Extrahiert einen Benutzer anhand seines Benutzernamens aus der Datenbank.void
loescheBenutzer(String benutzerName)
Loescht den angegebenen Benutzer aus dem System! Dieser kann nicht geloescht werden, wenn der Benutzer der RootBenutzer ist.void
loescheBenutzergruppenReferenz(Benutzergruppe benutzergruppe)
Loescht die Benutzergruppenreferenz für alle (referenzierenden) Benutzer.void
sichereBenutzer(AbstractBenutzer benutzer)
Speichert den angegebenen Benutzer in der Datenbank.void
ueberpruefeLoeschBedingungen(Benutzergruppe benutzergruppe)
Prueft für die angegebeneBenutzergruppe
, ob diese den Kriterien entspricht, dass diese geloescht werden kann.
-
-
-
Method Detail
-
erstelleBenutzer
@Transactional(rollbackFor=BenutzerExistiertBereitsException.class, isolation=SERIALIZABLE, propagation=MANDATORY) public AuthBenutzerDTO erstelleBenutzer(BenutzerDTO benutzerDTO, Principal userPrincipal) throws PortalDocException
Erstellt einenAuthBenutzerDTO
aus demBenutzerDTO
. Ein Benutzer-Name muss im System paarweise verschieden sein, d.h. dieser kann unter den Benutzer-Objekten nur einmal vergeben werden.- Parameters:
benutzerDTO
- - Der BenutzerDTO.userPrincipal
- - Die Benutzerprivilegien.- Returns:
AuthBenutzerDTO
, einen authorisierten Benutzer.- Throws:
PortalDocException
-- wenn der Benutzer-Name bereits vergeben wurde
- wenn die Benutzergruppe nicht gefunden wurde
- wenn der Mandant nicht gefunden wurde
-
getBenutzer
public AbstractBenutzer getBenutzer(String benutzer) throws BenutzerNichtGefundenException
Extrahiert einen Benutzer anhand seines Benutzernamens aus der Datenbank.- Parameters:
benutzer
- - Der Benutzer.- Returns:
AbstractBenutzer
, einen Abstrakten Benutzer.- Throws:
BenutzerNichtGefundenException
- Wenn der Benutzer nicht gefunden werden konnte.
-
loescheBenutzergruppenReferenz
@Transactional(isolation=SERIALIZABLE, propagation=REQUIRED) public void loescheBenutzergruppenReferenz(Benutzergruppe benutzergruppe)
Loescht die Benutzergruppenreferenz für alle (referenzierenden) Benutzer. Ausnahme: RootBenutzer (dieser ist keiner Benutzergruppe zugeordnet).- Parameters:
benutzergruppe
- - Die Benutzergruppen.
-
loescheBenutzer
@Transactional(isolation=SERIALIZABLE, propagation=REQUIRED) public void loescheBenutzer(String benutzerName) throws PortalDocException
Loescht den angegebenen Benutzer aus dem System! Dieser kann nicht geloescht werden, wenn der Benutzer der RootBenutzer ist.- Parameters:
benutzerName
- - Benutzername als String.- Throws:
BenutzerNichtGefundenException
- wenn der Benutzername nicht vergeben istRootAccountKannNichtGeloeschtWerdenException
- wenn der Benutzer derRootBenutzer
istPortalDocException
-
fuehreBenutzerZusammen
@Transactional(rollbackFor=BenutzerNichtGefundenException.class, isolation=SERIALIZABLE, propagation=REQUIRED) public AuthBenutzerDTO fuehreBenutzerZusammen(MergeBenutzerDTO mergeBenutzerDTO, Principal userPrincipal) throws PortalDocException
Fuehrt zwei Benutzer zusammen. Der erste angegebene Benutzer bleibt bestehen. Der zweite angegebene Benutzer wird geloescht! Die Benutzergruppen, Mandanten und Dokumente werden von dem zweiten Benutzer auf den ersten uebertragen ohne doppelte Eintraege zu erzeugen. Kann nicht ausgefuehrt werden, wenn der zweite Benutzer der RootBenutzer ist.- Parameters:
mergeBenutzerDTO
- Das MergeBenutzerDTO.userPrincipal
- Die Benutzerprivilegien.- Returns:
StandardBenutzer
, eine Standard Benutzer.- Throws:
BenutzerNichtGefundenException
- wenn ein Benutzer nicht gefunden wurde.RootBenutzerKannNichtGemergedWerdenException
- wenn der zweite Benutzer der RootBenutzer ist.PortalDocException
-
ueberpruefeLoeschBedingungen
@Transactional(isolation=SERIALIZABLE, propagation=REQUIRED) public void ueberpruefeLoeschBedingungen(Benutzergruppe benutzergruppe) throws PortalDocException
Prueft für die angegebeneBenutzergruppe
, ob diese den Kriterien entspricht, dass diese geloescht werden kann. Negativ-Kriterium: Falls die Benutzergruppe von mind. einem Benutzer referenziert wird, welcher nur diese Benutzergruppe referenziert (siehe Exception).- Parameters:
benutzergruppe
- Die Benutzergruppe.- Throws:
BenutzergruppeWirdReferenziertException
- wenn die Benutzergruppe von mind. einem Benutzer referenziert wird, der nur diese Benutzergruppe referenziert.PortalDocException
-
sichereBenutzer
public void sichereBenutzer(AbstractBenutzer benutzer)
Speichert den angegebenen Benutzer in der Datenbank.- Parameters:
benutzer
- Der abstrakte Benutzer.
-
-