Dynamische Vergabe von Benutzerberechtigungen

Nach der Möglichkeit, Ihr eigenes Endbenutzer-Verwaltungssystem und den SET USER ALIAS Befehl fragen Sie sich vielleicht, wie Sie die Rechte von Endbenutzern verwalten können, ohne mehrere 4D Benutzerkonten anzulegen. Lesen Sie weiter, denn dieses Feature Release hat die Antwort!

4D Entwickler müssen oft Endbenutzer mit ihrem eigenen Verzeichnissystem verwalten(z.B. von einer internen Entwicklung zu einer externen mit LDAP oder SSO). Eine Lösung war es, so viele 4D Benutzerkonten wie möglich zu erstellen und dann von einem zum anderen zu wechseln.

4D v18 R4 macht die Dinge intuitiver, indem es Ihnen erlaubt, die Rechte von Benutzern mit Gruppen dynamisch festzulegen.

Am einfachsten ist es, ein Standard-Benutzerkonto ohne Gruppenzugehörigkeit zu erstellen:

Dann können Sie für jedes Recht, das Sie verwalten möchten, eine Gruppe erstellen.

blank

Zur Laufzeit können Sie weiterhin mit dem SET USER ALIAS Befehl verwenden, um den Benutzernamen so zu setzen, dass er überall in der Datenbank erscheint.

Mit dem neuen Befehl SET GROUP ACCESS können Sie nun auch die Gruppenzugehörigkeit dynamisch festlegen.

Beachten Sie, dass diese beiden Befehle auf der Serverseite nicht verfügbar sind.

Hier ein Codebeispiel, das auf einem Remote-Client nach der benutzerdefinierten Benutzerauthentifizierung ausgeführt wird:

// Set my own user field as alias
SET USER ALIAS([MyUserTable]Name)

// Set user groups following rights
C_COLLECTION ($userGroups)
$userGroups :=New collection
If([MyUserTable]4DWriteProAccess)
$userGroups .push("4D Write Pro")
End if
If ([MyUserTable]4DViewProAccess)
$userGroups .push("4D View Pro")
End if
SET GROUP ACCESS ($userGroups)

Sie können den Zugriff der aktuellen Benutzergruppe auf “ keine“ setzen, wenn Sie möchten:

SET GROUP ACCESS(New collection)

Sie können den Zugriff der aktuellen Benutzergruppe auf die in der Verzeichnisdatei gespeicherten Werte zurücksetzen:

SET GROUP ACCESS

Mit dem neuen Befehl Get group access können Sie die aktuelle Gruppenzugehörigkeit abrufen:

SET GROUP ACCESS(New collection("4D View Pro"; "4D Write Pro"))

$collection :=Get group access
// $collection enthält ["4D View Pro", "4D Write Pro"]

Alle vergebenen Gruppenzugriffe haben keinen Einfluss auf das Benutzer-/Gruppenverzeichnis.

Jetzt sind Sie an der Reihe, es auszuprobieren. Verwalten Sie Ihre Benutzer und Gruppen dynamisch … wie Sie wollen!

Avatar
- Product Owner - Damien Fuzeau ist seit Februar 2019 Mitglied des 4D Produktteams. Als Product Owner ist er für das Schreiben von User Stories zuständig, die er dann in funktionale Spezifikationen umsetzt. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die gelieferten Funktionsimplementierungen den Anforderungen der Kunden entsprechen. Damien hat an der Universität von Nantes einen Abschluss in Softwaretechnik gemacht. Er verbrachte mehr als 23 Jahre in seinem früheren Unternehmen, zunächst als Entwickler (er entdeckte 4D im Jahr 1997) und später als technischer Leiter und Softwarearchitekt. Dieses Unternehmen ist ein 4D OEM Partner und hat 4D basierte Geschäftssoftware für Tausende von Usern auf Hunderten von Servern eingesetzt. Damien ist also mit der Entwicklung und dem Einsatz von 4D in einem mehrsprachigen Kontext vertraut.