Programmierung

Benutzersystem erweitern

Das seit der CONZEPT 16-Version 5.3 verfügbare Benutzersystem erlaubt nicht nur eine sehr flexible Verwendung, der Entwickler kann auch Erweiterungen für die eigene Anwendung vornehmen. Diese Erweiterungen lassen sich in drei Gruppen einteilen: Neue Eigenschaften für Benutzer, Benutzergruppen und Elementgruppen sowie anwendungsspezifische Programmrechte und selbstdefinierte Anwendungsobjekte, auf die die Vergabe von Rechten erfolgen kann.


Neue Eigenschaften

Zusätzlich zu den von CONZEPT 16 definierten Eigenschaften, wie beispielsweise das Ablaufdatum eines Benutzerkontos (_UrmPropExpirationDate) oder der Besitzer einer Benutzergruppe (_UrmPropOwner), können auch weitere Properties durch die Anwendung definiert werden. Die Auswertung dieser zusätzlichen Eigenschaften erfolgt nicht durch CONZEPT 16, die Verarbeitung muss durch die Applikation erfolgen.

Neue Eigenschaften lassen sich für Benutzer, Benutzergruppen und Elementgruppen erzeugen:

// Benutzer öffnen und sperren
tHdlUser # UrmOpen(_UrmTypeUser,_UrmLock,'P.Mueller');

// Neue Eigenschaft hinzufügen
tErg # tHdlUser->UrmCreate(_UrmTypeProperty,'LastLogin',_TypeBigInt);

// Eigenschaft setzen
tToday->vmSystemTime();
tHdlUser->UrmPropSet('LastLogin',tToday);

Anwendungsspezifische Rechte

Neben den bereits vordefinierten Rechten wie Ausführen (_UrmPermExecute) oder Ändern (_UrmPermModify) lassen sich bis zu 24 selbstdefinierte Rechte verwenden. Dafür gibt es die Konstanten _UrmPermUser01 bis _UrmPermUser24. Dabei sollten allerdings nur Rechte mit globaler Verwendungmöglichkeit definiert werden, wie beispielsweise das Recht zu drucken oder Daten zu exportieren. Spezielle Anwendungsrechte sollten dagegen durch enstprechende Eigenschaften auf der Ebene von Benutzer- oder Elementgruppen festgelegt werden.

// Recht definieren
define
{
  sUrmPermPrint  : _UrmPermUser01;
  sUrmPermExport : _UrmPermUser02;
}

// aktuelle Rechte ermitteln
tElmGrpRights # tHdlUserGrp->UrmPermGetRaw('Orders',_UrmAllow);

// Rechte hinzufügen
tHdlUserGrp->UrmPermSet('Orders',_UrmAllow,tElmGrpRights | sUrmPermPrint);

Selbstdefinierte Anwendungsobjekte

Rechte werden immer in einer Benutzergruppe für eine Menge von Anwendungselementen (Elementgruppe) vergeben, dabei sind standardmäßig alle CONZEPT 16-Elementtypen (Tabellen, Dialoge, Prozeduren etc.) möglich. Darüberhinaus können auch eigene Elemente einer Elementgruppe hinzugefügt werden, der Elementtyp ist dabei _UrmTypeElmCustom. Da der Name eines solchen Elements frei gestaltet werden kann, lassen sich eigene Untertypen in der Namensstruktur unterbringen.

Das folgende Beispiel fügt einzelne Auswertungen zu einer Elementgruppe hinzu, das Recht die Auswertung durchzuführen oder zu drucken kann man anschließend bei der Benutzergruppe setzen.

// Elementgruppe öffnen
tHdlElmGroup # UrmOpen(_UrmTypeElmGroup,_UrmLock,'OrderStats');

// Auswertungen zur Gruppe hinzufügen
tHdlElmGroup->UrmCreate(_UrmTypeElmCustom,'STA:Umsatz3M_DE');
tHdlElmGroup->UrmCreate(_UrmTypeElmCustom,'STA:Umsatz3M_EU');
tHdlElmGroup->UrmCreate(_UrmTypeElmCustom,'STA:Umsatz1J_DE');
2 Kommentare

2 Kommentare “Benutzersystem erweitern”

Kommentar abgeben