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.
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!