Zum Hauptinhalt springen

UrmPermGet

obj -> UrmPermGet(alpha1, int2, bigint3) : logic

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

Ermitteln, ob bestimmte Rechte vorhanden sind

Details

Mit dieser Anweisung kann überprüft werden, ob der eigene Benutzer oder eine Benutzergruppe über bestimmte Berechtigungen auf einer Elementgruppe verfügt oder sie entzogen bekommen hat.

  • Rechte einer Benutzergruppe ermitteln Der Deskriptor der Benutzergruppe wird in (obj) übergeben. In (alpha1) wird der Name der Elementgruppe angegeben, deren Rechte ermittelt werden sollen.
  • Die eigenen Rechte ermitteln Um die eigenen Berechtigungen zu ermitteln, wird als Deskriptor in (obj) 0 übergeben. Dabei werden dann die effektiven Rechte überprüft, die sich aus der Kombination der Rechte aller Benutzergruppen zusammen setzt, der der Benutzer zugeordnet ist. Der Name der Elementgruppe wird in (alpha1) übergeben. Es können nur die erlaubten Rechte (_UrmAllow) ermittelt werden.

In (bigint3) wird eine beliebige Kombination von Berechtigungsflags und in (int2) der Abfragemodus übergeben. 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 ermittelt 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.

Je nach übergebenem Modus (int2) kann überprüft werden, ob eine Benutzergruppe ein oder mehrere Rechte zugesprochen oder entzogen bekommen hat. Mit dem Aufruf UrmPermGet(..., _UrmAllow , ...) werden die zugesicherten Rechte überprüft, mit dem Aufruf UrmPermGet(..., _UrmDeny , ...) die entzogenen Rechte.

Werden mehrere Rechte gleichzeitig überprüft, gibt die Anweisung nur dann true zurück, wenn mindestens die angegebenen Rechte zugesprochen oder entzogen wurden. Sind bei einer Elementgruppe zum Beispiel die Rechte _UrmPermRead, _UrmPermCreate und _UrmPermModify erlaubt, wird bei der Überprüfung mit UrmPermGet(..., _UrmAllow , _UrmCreate | _UrmModify ) true zurückgegeben. Bei der Überprüfung mit UrmPermGet(..., _UrmAllow , _UrmCreate | _UrmExecute ) wird allerdings false zurückgegeben, weil das Ausführungsrecht nicht zugesichert ist.

Beispiel

// Überprüfung der eigenen Rechte
if (UrmPermGet(0, 'Customer', _UrmAllow, _UrmPermRead))
{
// Anzeige der Datensatzinformation
...
}

// Kombination von Rechten
if (UrmPermGet(0, 'Customer', _UrmAllow, _UrmPermRead | _UrmPermCreate | _UrmPermModify))
{
// Änderungsdialog aufrufen
...
}

// Welcher Modus?
if (tHdlUserGrp->UrmPermGet('Customer', _UrmAllow, _UrmPermRead))
{
// Recht zugewiesen
...
}
if (tHdlUserGrp->UrmPermGet('Customer', _UrmDeny, _UrmPermRead))
{
// Recht entzogen
...
}

Mögliche Laufzeitfehler: