Zum Hauptinhalt springen

UrmPermSet

obj -> UrmPermSet(alpha1, int2, bigint3) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Bestimmte Rechte setzen

Details

Mit dieser Anweisung können Rechte von Benutzergruppen auf Elementgruppen gesetzt oder entzogen werden. Der Deskriptor der Benutzergruppe wird in (obj) übergeben. Der Name der Elementgruppe wird in (alpha1) übergeben.

In (bigint3) wird eine beliebige Kombination von Berechtigungsflags und in (int2) der Modus übergeben. Ein Recht kann sowohl mit _UrmAllow erlaubt, als auch mit _UrmDeny verboten werden.

info

Sind für ein Recht beide Modi gesetzt, wird das Recht verboten.

Dies kann verwendet werden, um einem Benutzer, der in zwei Benutzergruppen ist explizit Rechte der ersten Benutzergruppe zu verbieten, die er nicht haben soll.

Die in (bigint3) übergebene Kombination aus Berechtigungsflags kann mit folgenden Konstanten zusammengestellt werden:

Die Berechtigungen der alten Benutzerverwaltung können mit Hilfe von _UrmOldPerm...-Konstanten gesetzt werden. Die Konstanten sind im Abschnitt Konvertierung des alten Benutzersystems zusammengefasst.

Der Programmierer kann eigene Rechte definieren. Dazu stehen ihm die _UrmPermUser...-Konstanten zur Verfügung.

Für jeden Modus muss die Anweisung separat aufgerufen werden. Sollen also bestimmte Rechte gesetzt und andere Entzogen werden, muss die Anweisung zwei mal aufgerufen werden.

Bei Änderungen von Berechtigungen wird zwischen dem neuen System, das vom CONZEPT 16-Server verwaltet wird und dem alten System, das vom Client verwaltet wird, unterschieden. Änderungen im neuen System wirken sich sofort aus, während Änderungen im alten System sich erst nach einer Neuanmeldung des Benutzers auswirken.

Der Rückgabewert des Befehls kann mit folgenden Konstanten verglichen werden:

Beispiel

// Rechte der Gruppe neu definieren
tHdlUserGrp->UrmPermSet('Customer', _UrmAllow, _UrmPermRead | _UrmPermCreate | _UrmPermModify);
tHdlUserGrp->UrmPermSet('Customer', _UrmDeny, _UrmPermDelete);

// Recht hinzufügen
tElmGrpRights # tHdlUserGrp->UrmPermGetRaw('Customer', _UrmAllow);
tHdlUserGrp->UrmPermSet('Customer', _UrmAllow, tElmGrpRights | _UrmPermExecute);

// Recht entfernen
tElmGrpRights # tHdlUserGrp->UrmPermGetRaw('Customer', _UrmAllow);
tHdlUserGrp->UrmPermSet('Customer', _UrmAllow, tElmGrpRights & ~_UrmPermExecute);

// Recht explizit verbieten
tElmGrpRights # tHdlUserGrp->UrmPermGetRaw('Customer', _UrmDeny);
tHdlUserGrp->UrmPermSet('Customer', _UrmDeny, tElmGrpRights | _UrmPermConfig);

// Explizites Verbot aufheben
tElmGrpRights # tHdlUserGrp->UrmPermGetRaw('Customer', _UrmDeny);
tHdlUserGrp->UrmPermSet('Customer', _UrmDeny, tElmGrpRights & ~_UrmPermConfig);

Mögliche Laufzeitfehler: