Class ExtendedUserInfo
java.lang.Object
de.bsvrz.dav.daf.accessControl.internal.DataLoader
de.bsvrz.dav.daf.accessControl.internal.ExtendedUserInfo
- All Implemented Interfaces:
UserInfoInternal
,UserInfo
public class ExtendedUserInfo extends DataLoader
Kapselt für die Rechteverwaltung einen Benutzer und dessen Berechtigungsklassen. Diese Klasse wird von dem neuen Datenmodell verwendet, bei dem
jeder Benutzer mehrere Berechtigungsklassen zugewiesen bekommen kann. Andernfalls wird
OldUserInfo
verwendet.-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
USER_ASPECT_PID
static java.lang.String
USER_ATTRIBUTE_GROUP_PID
Fields inherited from class de.bsvrz.dav.daf.accessControl.internal.DataLoader
_debug, _readLock, _writeLock
-
Constructor Summary
Constructors Constructor Description ExtendedUserInfo(ClientDavInterface connection, DafAccessControlManager accessControlManager, SystemObject systemObject)
Erstellt eine neue ExtendedUserInfo-Klasse. -
Method Summary
Modifier and Type Method Description void
addChangeListener(AccessControlChangeListener listener)
Meldet einen Listener auf geänderte Nutzerrechte anboolean
canBeSafelyDeleted()
Prüft, ob keine Referenzen mehr vorhanden sind, und das Objekt gelöscht werden darf.void
deactivateInvalidChild(DataLoader node)
Wenn es ein Problem mit der Rekursion gibt, wird dieses Objekt hiermit angewiesen den Verweis auf das angegebene (Unter-)Objekt zu deaktivieren.void
decrementReference()
Dekrementiert den Referenzzähler um eins.protected java.util.List<DataLoader>
getChildObjects()
Gibt die untergeordneten Objekte zurück.SystemObject
getUser()
Gibt den referenzierten Benutzer als Systemobjekt zurücklong
getUserId()
Gibt die ID des Benutzers zurückvoid
incrementReference()
Inkrementiert den Referenzzähler um eins.boolean
mayCreateModifyRemoveObject(ConfigurationArea area, SystemObjectType type)
Prüft ob ein Objekt mit den angegeben Daten erstellt, verändert oder gelöscht werden darfboolean
mayModifyObjectSet(ConfigurationArea area, ObjectSetType type)
Prüft ob eine Menge mit den angegebenen Daten verändert werden darfboolean
maySubscribeData(BaseSubscriptionInfo info, UserAction action)
Prüft, ob die angegebenen Daten beim Datenverteiler angemeldet werden dürfen.boolean
maySubscribeData(SystemObject object, AttributeGroup attributeGroup, Aspect aspect, UserAction action)
Prüft, ob die angegebenen Daten beim Datenverteiler angemeldet werden dürfen.void
removeChangeListener(AccessControlChangeListener listener)
Entfernt einen Listener auf geänderte Benutzerrechtejava.lang.String
toString()
protected void
update(Data data)
Wird aufgerufen, wenn sich die BenutzerParameter für den aktuellen Benutzer ändern.Methods inherited from class de.bsvrz.dav.daf.accessControl.internal.DataLoader
getDataState, getNoDataTime, getSystemObject, invalidate, isInitialized, startDataListener, stopDataListener, toString, waitForInitialization, waitForInitializationTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface de.bsvrz.dav.daf.accessControl.internal.UserInfoInternal
stopDataListener
-
Field Details
-
USER_ATTRIBUTE_GROUP_PID
public static final java.lang.String USER_ATTRIBUTE_GROUP_PID- See Also:
- Constant Field Values
-
USER_ASPECT_PID
protected static final java.lang.String USER_ASPECT_PID- See Also:
- Constant Field Values
-
-
Constructor Details
-
ExtendedUserInfo
public ExtendedUserInfo(ClientDavInterface connection, DafAccessControlManager accessControlManager, SystemObject systemObject)Erstellt eine neue ExtendedUserInfo-Klasse. Sollte nur im AccessControlManager benutzt werden.- Parameters:
connection
- Verbindung zum DatenverteileraccessControlManager
- Klasse, die die Rechtesteuerungsklassen verwaltetsystemObject
-
-
-
Method Details
-
getUser
Gibt den referenzierten Benutzer als Systemobjekt zurück- Returns:
- den referenzierten Benutzer
-
getUserId
public final long getUserId()Gibt die ID des Benutzers zurück- Returns:
- Id, mit der das Systemobjekt des Benutzers angefordert werden kann.
-
update
Wird aufgerufen, wenn sich die BenutzerParameter für den aktuellen Benutzer ändern.- Parameters:
data
- Datenobjekt mit den Daten der Attributgruppe atg.benutzerParameter für den aktuellen Benutzer.
-
getChildObjects
Description copied from class:DataLoader
Gibt die untergeordneten Objekte zurück. Z.B. die Rollen und Regionen bei der Berechtigungsklasse oder die Berechtigungsklassen beim Benutzer. Wird gebraucht um Rekursionen zu erkennen und über geänderte Benutzerrechte zu informieren. Achtung: Es werden nur die direkten Kinder zurückzugeben, nicht die "Enkel" usw. - Will man alle "Enkel" usw. haben muss man diese Funktion rekursiv aufrufen.
Hinweis: MitDataLoader.deactivateInvalidChild(DataLoader)
deaktivierte Kindelemente werden nicht aufgeführt.- Specified by:
getChildObjects
in classDataLoader
- Returns:
- Liste mit untergeordneten Objekten
-
deactivateInvalidChild
Description copied from class:DataLoader
Wenn es ein Problem mit der Rekursion gibt, wird dieses Objekt hiermit angewiesen den Verweis auf das angegebene (Unter-)Objekt zu deaktivieren. Beispielsweise könnte eine Rolle angewiesen werden, eine innere Rolle zu deaktivieren, weil sie identisch mit der eigentlichen Rolle ist.- Specified by:
deactivateInvalidChild
in classDataLoader
- Parameters:
node
- Das zu entfernende Kindobjekt
-
maySubscribeData
Description copied from interface:UserInfo
Prüft, ob die angegebenen Daten beim Datenverteiler angemeldet werden dürfen.- Parameters:
info
- Daten-Anmeldungs-Informationenaction
- Art der Datenanmeldung- Returns:
true
, wenn die Daten angemeldet werden dürfen, sonstfalse
.
-
maySubscribeData
public boolean maySubscribeData(SystemObject object, AttributeGroup attributeGroup, Aspect aspect, UserAction action)Description copied from interface:UserInfo
Prüft, ob die angegebenen Daten beim Datenverteiler angemeldet werden dürfen.- Parameters:
object
- Objekt, das verwendet wirdattributeGroup
- Attributgruppe der Datenaspect
- Aspekt der Datenaction
- Art der Datenanmeldung- Returns:
true
, wenn die Daten angemeldet werden dürfen, sonstfalse
.
-
mayCreateModifyRemoveObject
Description copied from interface:UserInfo
Prüft ob ein Objekt mit den angegeben Daten erstellt, verändert oder gelöscht werden darf- Parameters:
area
- Konfigurationsbereichtype
- Typ des Objekts- Returns:
true
, wenn das Objekt erstellt werden darf, sonstfalse
.
-
mayModifyObjectSet
Description copied from interface:UserInfo
Prüft ob eine Menge mit den angegebenen Daten verändert werden darf- Parameters:
area
- Konfigurationsbereichtype
- Typ der Menge- Returns:
true
, wenn die Menge verändert werden darf, sonstfalse
.
-
toString
public java.lang.String toString()- Overrides:
toString
in classDataLoader
-
addChangeListener
Description copied from interface:UserInfo
Meldet einen Listener auf geänderte Nutzerrechte an- Parameters:
listener
- Listener
-
removeChangeListener
Description copied from interface:UserInfo
Entfernt einen Listener auf geänderte Benutzerrechte- Parameters:
listener
- Listener
-
incrementReference
public final void incrementReference()Description copied from interface:UserInfoInternal
Inkrementiert den Referenzzähler um eins.- Specified by:
incrementReference
in interfaceUserInfoInternal
-
decrementReference
public final void decrementReference()Description copied from interface:UserInfoInternal
Dekrementiert den Referenzzähler um eins.- Specified by:
decrementReference
in interfaceUserInfoInternal
-
canBeSafelyDeleted
public final boolean canBeSafelyDeleted()Description copied from interface:UserInfoInternal
Prüft, ob keine Referenzen mehr vorhanden sind, und das Objekt gelöscht werden darf.- Specified by:
canBeSafelyDeleted
in interfaceUserInfoInternal
- Returns:
true
, wenn der Benutzer vom System abgemeldet wurde.
-