UrmPermSet
obj -> UrmPermSet(alpha1, int2, bigint3) : int
Bestimmte Rechte setzen
Details
- obj: Deskriptor der Benutzergruppe
- alpha1: Name der Elementgruppe
- int2:
- bigint3: Berechtigungsflags
- Resultat:
intFehlerwert - Siehe: Verwandte Befehle , Benutzerpflege ,
UrmPermGet (),UrmPermGetRaw ()
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.
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:
_UrmOldPermAccess: Dateiberechtigung zum Zugriff auf Datensätze_UrmOldPermDelete: Dateiberechtigung zum Löschen von Datensätzen_UrmOldPermEntry: Dateiberechtigung zur Eingabe von Datensätzen_UrmOldPermExecLists: Dateiberechtigung Ausführen von Listen_UrmOldPermExecSelections: Dateiberechtigung Ausführen von Selektionen_UrmOldPermExecTransfers: Dateiberechtigung zur Ausführung von Transfers_UrmOldPermLink: Dateiberechtigung zum Zugriff auf Verknüpfungen_UrmOldPermListFormats: Dateiberechtigung zur Änderung von Listenformaten_UrmOldPermModify: Dateiberechtigung zum Ändern von Datensätzen_UrmOldPermParameters: Dateiberechtigung zur Änderung von Dateiparametern_UrmOldPermRecLists: Dateiberechtigung zum Ändern von Zugriffslisten_UrmOldPermSave: Dateiberechtigung zum Speichern von Datensätzen_UrmOldPermSelections: Dateiberechtigung zum Ändern von Selektionen_UrmOldPermTextMix: Dateiberechtigung zum Text und Daten mischen_UrmOldPermTransfers: Dateiberechtigung zum Ändern von Transfers_UrmPermRead: Berechtigung zum Lesen_UrmPermCreate: Berechtigung zum Erzeugen_UrmPermModify: Berechtigung zum Ändern_UrmPermModifyOwner: Berechtigung zum Ändern bei Objektbesitz_UrmPermDelete: Berechtigung zum Löschen_UrmPermDeleteOwner: Berechtigung zum Löschen bei Objektbesitz_UrmPermExecute: Berechtigung zum Ausführen_UrmPermConfig: Berechtigung zur Änderung der Tabellenstruktur_UrmIdePermRead: Berechtigung zum Lesen (Entwicklungsumgebung)_UrmIdePermCreate: Berechtigung zum Erzeugen (Entwicklungsumgebung)_UrmIdePermModify: Berechtigung zum Ändern von (Entwicklungsumgebung)_UrmIdePermDelete: Berechtigung zum Löschen von (Entwicklungsumgebung)_UrmPermElmGroupRead: Berechtigung Elementgruppen lesen_UrmPermElmGroupInsert: Berechtigung Element zur Gruppe hinzufügen_UrmPermElmGroupDelete: Berechtigung Element aus Gruppe löschen_UrmPermMemberInsert: Berechtigung Benutzer zu Benutzergruppe hinzufügen_UrmPermMemberDelete: Berechtigung Benutzer aus Benutzergruppe entfernen
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:
_ErrOk: kein Fehler aufgetreten_ErrRights: Berechtigung nicht ausreichend_ErrUrmObjectNotFound: Objekt (obj) nicht mehr vorhanden_ErrUnchangeable: Die Berechtigungen dürfen nicht verändert 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:
_ErrHdlInvalid: Der in (obj) übergebene Deskriptor ist ungültig._ErrStringOverflow: Es wurde ein zu langer Objektname angegeben._ErrValueInvalid: Es wurde ein unbekannter Modus in (int2) übergeben.