UrmCreate
obj -> UrmCreate(int1, alpha2[, int3]) : int
Objekt der Benutzerverwaltung erzeugen
Details
- obj: Deskriptor des Eltern-Objekts oder
0 - int1:
- alpha2: Name des Objekts
- int3:
- Typ der Eigenschaft (optional - nur wenn int1 = _UrmTypeProperty):
_TypeAlpha_TypeBigInt_TypeDate_TypeDecimal_TypeFloat_TypeInt_TypeLogic_TypeTime
- Resultat:
intFehlerwert - Siehe: Verwandte Befehle , Benutzerpflege ,
UrmDelete ()
Mit dieser Anweisung wird ein Objekt der Benutzerverwaltung erzeugt. Abhängig von dem in (int1) übergebenen Typ werden unterschiedliche Objekte erzeugt. Namen für Benutzer, Benutzergruppen und Elementgruppen dürfe nicht mit einem Unterstrich (_) beginnen, keine Steuerzeichen (ASCII-Wert < 32) und keines der folgenden Zeichen beinhalten: ! * ? : ; / ' " \. Folgende Objekte können erzeugt werden:
- Benutzer Soll ein neuer Datenbank-Benutzer erzeugt werden, muss in (obj)
0und in (int1)_UrmTypeUserübergeben werden. Als (alpha2) wird der Name des neuen Benutzers angegeben. Der Name des Benutzers darf maximal20Zeichen lang sein. - Benutzergruppe Soll eine neue Benutzergruppe angelegt werden, muss in (obj)
0und in (int1)_UrmTypeUserGroupangegeben werden. Der Name der Benutzergruppe wird in (alpha2) übergeben. Der Namen der Benutzergruppe darf maximal20Zeichen lang sein. - Elementgruppe Soll eine neue Elementgruppe angelegt werden, muss in (obj)
0und in (int1)_UrmTypeElmGroupangegeben werden. Der Name der Elementgruppe wird in (alpha2) angegeben. Der Name der Elementgruppe darf maximal40Zeichen lang sein. - Eigenschaft Soll eine neue Eigenschaft definiert werden, muss das Objekt, dass die neue Eigenschaft bekommen soll in (obj) übergeben werden. Das entsprechende Objekt muss zuvor mit
UrmOpen ()geöffnet werden. In (int1) wird_UrmTypePropertyund in (alpha2) der Name der Eigenschaft übergeben. Der Name darf nicht länger als40Zeichen sein. Der Typ der Eigenschaft muss in (int3) übergeben werden. Der Wert der Eigenschaft kann anschließend mit der AnweisungUrmPropSet ()gesetzt werden. - Mitgliedschaft Wird in (int1) der Typ
_UrmTypeMemberübergeben, kann damit ein Benutzer zu einer Benutzergruppe zugeordnet werden. Wird in (obj) eine Benutzergruppe übergeben, muss in (alpha2) der Name eines Benutzers angegeben werden. Wird in (obj) ein Benutzer übergeben, muss in (alpha2) der Name einer Benutzergruppe angegeben werden. Der in (obj) übergebene Deskriptor muss zuvor mitUrmOpen ()geöffnet werden. - Eintrag in einer Elementgruppe Soll ein neuer Eintrag in eine Elementgruppe vorgenommen werden, muss in (obj) der Deskriptor der Elementgruppe übergeben werden. Die Elementgruppe muss zuvor mit der Anweisung
UrmOpen ()geöffnet worden sein. In (int1) wird der Typ des Elements mit einer_UrmTypeElm...-Konstante angegeben. Der Name des Objekts wird in (alpha2) übergeben.
Zum Typ _UrmTypeElmBlob können momentan keine Datenbankobjekte hinzugefügt werden.
Die Anzahl der einzelnen Objekte, Eigenschaften, Mitgliedschaften usw. sind beschränkt. Die Limitationen sind im Abschnitt Limitationen des Benutzersystems erläutert.
Änderungen in Bezug auf Mitgliedschaften von Benutzern in Benutzergruppen und Elementen in Elementgruppen wirken sich sofort auf das Benutzersystem aus. Wird also ein Benutzer einer Benutzergruppe zugeordnet, stehen sofort die neuen Berechtigungen zur Verfügung. 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.
Nachdem das Objekt erzeugt wurde, kann es mit der Anweisung UrmOpen () geöffnet und bearbeitet werden.
Als Rückgabewert wird eine Fehlerkonstante zurückgegeben. Sie kann mit folgenden Konstanten verglichen werden:
_ErrOk: Kein Fehler aufgetreten._ErrExists: Das Objekt ist bereits vorhanden._ErrNameInvalid: In (alpha2) wurde ein falscher Name angegeben._ErrRights: Der Benutzer verfügt nicht über ausreichende Rechte._ErrUrmParentNotFound: Das in (obj) übergebene Eltern-Objekt wurde nicht gefunden._ErrUrmObjectNotFound: Das in (alpha2) angegebene Objekt existiert nicht._ErrType: In (alpha2) oder (int3) ist ein falscher Typ angegeben worden._ErrLimitExceeded: Die Limitationen wurden überschritten.
Beispiel
// Benutzer erzeugen
tErg # UrmCreate(0, _UrmTypeUser, 'Sales1');
tHdlUser # UrmOpen(_UrmTypeUser, _UrmLock, 'Sales1');
// Diesen Benuter der Gruppe Sales zuordnen
tErg # tHdlUser->UrmCreate(_UrmTypeMember, 'Sales');
tHdlUser->UrmClose();
// Benutzer eine Eigenschaft hinzufügen
tHdlUser # UrmOpen(_UrmTypeUser, _UrmLock, 'Sales1');
// Diesem Benuter eine neue Eigenschaft zuordnen
tErg # tHdlUser->UrmCreate(_UrmTypeProperty, 'LastLogin', _TypeDate);
// Alternative der Zuordnung zu einer Benutzergruppe
tHdlUserGroup # UrmOpen(_UrmTypeUserGroup, _UrmLock, 'Sales');
tErg # tHdlUserGroup->UrmCreate(_UrmTypeMember, 'Sales1');
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der in (obj) übergebene Deskriptor ist nicht gültig._ErrValueInvalid: In (int1) ist ein unbekannter Typ übergeben worden._ErrStringOverflow: Der Objektname in (alpha2) ist zu lang.