Branding

Archivierung von Benutzern

Benutzeridentitäten können aus der Benutzerverwaltung nicht gelöscht werden, da diese im CMS noch als Autoren mit Inhalten verknüpft sein können.

In der Benutzerverwaltung soll daher eine Funktionalität zum Archivieren von Benutzern (bzw. deren Benutzeridentitäten) zur Verfügung gestellt werden. Eine archivierte Benutzeridentität wird zwar weiterhin in der Benutzerdatenbank geführt, kann sich aber nicht mehr an den Systemen anmelden. Außerdem sind einer archivierten Benutzeridentität keinerlei Berechtigungen zugeordnet.

Anpassungen und Erweiterungen

Zur Einbettung der Funktionalität wird der Benutzerverwaltung die Registerkarte „archivierte Benutzer“ hinzugefügt.

Unter der Registerkarte werden die archivierten Benutzer in einer tabellarischen Form dargestellt (vergleiche Abbildung 1). In der tabellarischen Ansicht ist am rechten Tabellenrand die Schaltfläche „Benutzer wiederherstellen“ integriert. Durch Betätigen der Schaltfläche wird der entsprechende Benutzer unmittelbar wiederhergestellt.

Liste der archivierten Benutzer (Skizze) Liste der archivierten Benutzer (Skizze) Abbildung 1: Liste der archivierten Benutzer (Skizze).

Nachdem ein Benutzer wiederhergestellt wurde, wird in die Stammdatenverwaltung des Benutzers gewechselt und eine Nachricht über die erfolgreiche Wiederherstellung des Benutzers angezeigt. Ferner informiert die Nachricht darüber, dass dem gerade aktivierten Benutzer keine Gruppen zugeordnet sind und dass der Benutzer kein Passwort besitzt (vergleiche Abbildung 2). 

Die Funktionalität zur Archivierung eines Benutzers wird durch eine Schaltfläche in die Stammdatenverwaltung integriert. Nach Betätigen der Schaltfläche wird der Benutzer unmittelbar archiviert. Die Schaltfläche ist ebenfalls in der Abbildung 2 sichtbar.

Wiederhergestellter Benutzer Wiederhergestellter Benutzer Abbildung 2: Ansicht eines wiederhergestellten Benutzers

Technische Umsetzung

Für die Umsetzung wird die View archivedUser.xhtml neu erstellt und in die Portlet-Navigation eingehangen. Außerdem wird die View UserData.xhtml um die entsprechende Schaltfläche zur Archivierung von Benutzern erweitert.

Zur Steuerung der View archivedUsers.xhtml wird die Klasse ArchivedUsersBean angelegt, die die Liste aller archivierten Benutzer ermittelt und den Aufruf zur Wiederherstellung eines Benutzers entgegennimmt, um diesen an den User-Service weiterzuleiten.

Der User-Service wird um die folgenden Methoden erweitert

  • archiveUser: Archiviert einen Benutzer, indem das Passwort des Benutzers auf einen zufälligen Wert gesetzt wird, alle Gruppenmitgliedschaften des Benutzers entfernt werden und das LDAP-Flag absent auf true gesetzt wird.
  • restoreUser: Aktiviert einen Benutzer, indem das LDAP-Flag absent auf false gesetzt wird.
  • getArchivedUsers: Ermittelt die Menge aller archivierten Benutzer unter Verwendung des UserDAO

Letztlich wird die Klasse UserDAO so angepasst, das zunächst sämtliche Zugriffsfunktionen mit dem zusätzlichen LDAP-Filter !(absent=true) versehen werden, so dass die Funktionen keine archivierten Benutzer aus dem LDAP laden. Darüber hinaus wird die UserDAO-Klasse um eine Methode zum Ermitteln der archivierten-Benutzer erweitert.

Die Umsetzung basiert auf der Nutzung des absent-Attributs im LDAP. Das Attribut ist bereits im LDAP-Schema enthalten, so dass keine Anpassungen am LDAP erforderlich sind.