class Role extends DataLoader
Kapselt eine Rolle aus den Datenmodell in eine Klasse. Erlaubt Abfragen nach Berechtigung zur Anmeldung von Daten und zum Erstellen von Systemobjekten
Modifier and Type | Class and Description |
---|---|
private class |
Role.ActivityData
Kapselt eine Datenanmeldungs-Aktivität innerhalb einer Rolle
|
private static class |
Role.ActivityObject
Kapselt eine Objekterstellungs/-veränderungs-/-entfernungs-Aktivität innerhalb einer Rolle
|
private static class |
Role.ActivityObjectSet |
static class |
Role.PermissionState
Stellt einen Berechtigungsstatus dar.
|
Modifier and Type | Field and Description |
---|---|
private AccessControlManager |
_accessControlManager |
private java.util.List<Role.ActivityData> |
_activitiesData
Daten-Anmeldungs-Aktivitäten
|
private java.util.List<Role.ActivityObject> |
_activitiesObject
Objekterstellungs/-modifizierungs/-löschungs-Aktiviäten
|
private java.util.List<Role.ActivityObjectSet> |
_activitiesObjectSet
ObjektMengen-Veränderungs-Aktivitäten
|
private boolean |
_additiveChildren
Bestimmt ob Kind-Rollen additiv vereinigt werden sollen.
|
private java.util.List<Role> |
_disabledInnerRoles
Rekursiv referenzierte Rollen, die deaktiviert wurden
|
private java.util.List<Role> |
_innerRoles
Rollen von denen die Berechtigungen geerbt werden
|
private static java.lang.String |
ASPECT_PID |
private static java.lang.String |
ATG_ROLE |
_debug, _readLock, _writeLock
Modifier | Constructor and Description |
---|---|
protected |
Role(SystemObject systemObject,
ClientDavInterface connection,
AccessControlManager accessControlManager)
Erstellt eine neue Rolle
|
Modifier and Type | Method and Description |
---|---|
void |
deactivateInvalidChild(DataLoader node)
Deaktiviert die angegebene Unter-Rolle um Rekursionen aufzulösen
|
protected java.util.List<DataLoader> |
getChildObjects()
Gibt die referenzierten Unter-Rollen zurück
|
Role.PermissionState |
getPermission(AttributeGroup atg,
Aspect asp,
UserAction action)
Prüft den Berechtigungsstatus für eine angegebene Datenanmeldung
|
Role.PermissionState |
getPermissionObjectChange(ConfigurationArea area,
SystemObjectType type)
Prüft den Berechtigungsstatus für die Erstellung/Veränderung/Löschung von Objekten
|
Role.PermissionState |
getPermissionObjectSetChange(ConfigurationArea area,
ObjectSetType type)
Prüft den Berechtigungsstatus für die Veränderung von Mengen
|
private static boolean |
matchesType(SystemObjectType typeToTest,
java.util.List<? extends SystemObjectType> typesToAllow)
Prüft, ob sich ein Typ in einer angegebenen Liste von Typen befindet.
|
(package private) void |
reactivateInvalidChildren()
Aktiviert alle mit
deactivateInvalidChild(DataLoader) deaktivierten Elemente wieder. |
protected void |
update(Data data)
Wird aufgerufen, wenn neue Daten eingetroffen sind.
|
private void |
updateChildren()
Signalisiert allen deaktivierten referenzierten Rollen, dass diese Rolle geändert wurde.
|
getConnection, getDataState, getNoDataTime, getSystemObject, invalidate, isInitialized, startDataListener, stopDataListener, toString, toString, toString, waitForInitialization, waitForInitializationTree
private static final java.lang.String ATG_ROLE
private static final java.lang.String ASPECT_PID
private final AccessControlManager _accessControlManager
private final java.util.List<Role.ActivityData> _activitiesData
Daten-Anmeldungs-Aktivitäten
private final java.util.List<Role.ActivityObject> _activitiesObject
Objekterstellungs/-modifizierungs/-löschungs-Aktiviäten
private final java.util.List<Role.ActivityObjectSet> _activitiesObjectSet
ObjektMengen-Veränderungs-Aktivitäten
private final java.util.List<Role> _innerRoles
Rollen von denen die Berechtigungen geerbt werden
private final java.util.List<Role> _disabledInnerRoles
Rekursiv referenzierte Rollen, die deaktiviert wurden
private boolean _additiveChildren
Bestimmt ob Kind-Rollen additiv vereinigt werden sollen.
protected Role(SystemObject systemObject, ClientDavInterface connection, AccessControlManager accessControlManager)
Erstellt eine neue Rolle
systemObject
- Systemobjekt, das die Daten dieser Rolle enthältconnection
- Verbindung zum DatenverteileraccessControlManager
- Klasse, die Berechtigungsobjekte verwaltetpublic Role.PermissionState getPermission(AttributeGroup atg, Aspect asp, UserAction action)
Prüft den Berechtigungsstatus für eine angegebene Datenanmeldung
atg
- Attributgruppeasp
- Aspektaction
- Art der DatenanmeldungRole.PermissionState.IMPLICIT_FORBIDDEN
wenn keine Aussage gemacht werden kannRole.PermissionState.EXPLICIT_ALLOWED
wenn
die Aktion von dieser Rolle erlaubt wirdRole.PermissionState.EXPLICIT_FORBIDDEN
wenn die Aktion von dieser Rolle explizit verboten
wirdpublic Role.PermissionState getPermissionObjectChange(ConfigurationArea area, SystemObjectType type)
Prüft den Berechtigungsstatus für die Erstellung/Veränderung/Löschung von Objekten
area
- Konfigurationsbereichtype
- ObjekttypRole.PermissionState.IMPLICIT_FORBIDDEN
wenn keine Aussage gemacht werden kannRole.PermissionState.EXPLICIT_ALLOWED
wenn
die Aktion von dieser Rolle erlaubt wirdRole.PermissionState.EXPLICIT_FORBIDDEN
wenn die Aktion von dieser Rolle explizit verboten
wirdpublic Role.PermissionState getPermissionObjectSetChange(ConfigurationArea area, ObjectSetType type)
Prüft den Berechtigungsstatus für die Veränderung von Mengen
area
- Konfigurationsbereichtype
- MengentypRole.PermissionState.IMPLICIT_FORBIDDEN
wenn keine Aussage gemacht werden kannRole.PermissionState.EXPLICIT_ALLOWED
wenn
die Aktion von dieser Rolle erlaubt wirdRole.PermissionState.EXPLICIT_FORBIDDEN
wenn die Aktion von dieser Rolle explizit verboten
wirdprotected void update(Data data)
DataLoader
Wird aufgerufen, wenn neue Daten eingetroffen sind. Implementierende Klassen sollten hier das Data-Objekt verarbeiten.
update
in class DataLoader
data
- Data-Objekt entsprechend Attributgruppe und Aspektprivate void updateChildren()
Signalisiert allen deaktivierten referenzierten Rollen, dass diese Rolle geändert wurde. Wird gebraucht um unendliche Rekursionen aufzulösen.
protected java.util.List<DataLoader> getChildObjects()
Gibt die referenzierten Unter-Rollen zurück
getChildObjects
in class DataLoader
public void deactivateInvalidChild(DataLoader node)
Deaktiviert die angegebene Unter-Rolle um Rekursionen aufzulösen
deactivateInvalidChild
in class DataLoader
node
- Das zu entfernende Kindobjektvoid reactivateInvalidChildren()
Aktiviert alle mit deactivateInvalidChild(DataLoader)
deaktivierten Elemente wieder.
private static boolean matchesType(SystemObjectType typeToTest, java.util.List<? extends SystemObjectType> typesToAllow)
Prüft, ob sich ein Typ in einer angegebenen Liste von Typen befindet. Dabei kann Typ auch ein abgeleiteter Typ eines erlaubten Typen sein.
typeToTest
- Objekttyp, bei den geprüft wird ob er in der Liste enthalten isttypesToAllow
- Liste von Objekttypen