Muster: Definition und Anbindung von Funktionsrechten

Version: 1.0

Funktionsrechte steuern den Zugriff auf die einzelnen Geschäftsprozesse (Einträge im Dialogstartmenü). Benutzern, die Teil einer Gruppe ohne die Berechtigung für bestimmte Geschäftsprozesse sind, werden die zugehörigen Menüeinträge nicht angezeigt.

Diese Muster zeigt, wie man Funktionsrechte definiert und diese anbindet.

Design

Funktionsrechte werden mithilfe des Cmdlets New-ExecutionPermission definiert und Dialogabläufen zugeordnet.

Implementierung

Wir zeigen die Implementierung mittels eines einfachen Beispiels.

Die Definition von Funktionsrechten erfolgt per Konfigurationsskript. Dieses Beispiel legt das Funktionsrecht Schleupen.CS.apl.huj.dap.Anzeigen an:

New-ExecutionPermission "Schleupen.CS.apl" -DisplayName "Anwendungsplattform" -IsDefault
New-ExecutionPermission "Schleupen.CS.apl.huj" -DisplayName "Historisierung und Journalisierung" -IsDefault
New-ExecutionPermission "Schleupen.CS.apl.huj.dap" -DisplayName "Datenänderungsprotokoll" -IsDefault
New-ExecutionPermission "Schleupen.CS.apl.huj.dap.Anzeigen" -DisplayName "Anzeigen" -Description "Steuert die Anzeige des Datenänderungsprotokolls" -IsDefault

Das Funktionsrecht darf nicht in Großschreibung angelegt werden, sonst kommt es zu Fehlern in der Funktionsrechte-Verwalten-UI (Schleupen.CS.APL.HUJ.DAP geht also nicht, es muss zwingend Schleupen.CS.apl.huj.dap sein!).

Dabei zeigt -DisplayName den Anzeigennamen an:

-Description gibt die ausführlichere Beschreibung an. Aktuell als Tooltip in der UI zu sehen.

-IsDefault gibt an, dass es sich um ein von Schleupen ausgeliefertes Funktionsrecht handelt. Diese können nicht über die UI gelöscht werden.

Namenskonvention

Funktionsrechte werden als Namensräume wie oben organisiert und sollten entsprechend die Namensräume der bereitstellenden Bausteine bzw. die Hierarchisierung im Startmenü berücksichtigen!

Zuordnung

Um die so angelegten Funktionsrechte sinnvoll benutzen zu können, sollte eine oder mehrere Gruppen angelegt bzw. erweitert werden. Dies ist eine fachliche Entscheidung.

Beispiel, in dem eine Gruppe EEG-Sachbearbeiter angelegt und dieser einige Funktionsrechte zugeordnet werden:

$GroupName='EEG-Sachbearbeiter'
 
$userGroup=Select-CSGroup -Name $GroupName
if ($userGroup -eq $null)
{
    $userGroup = New-CSGroup -Name $GroupName -IsDefault
}
 
$ExecutionPermissionsToGrant =
@(
'Schleupen.CS.eeg',
'Schleupen.CS.mwm.prz.pzi',
'Schleupen.CS.mwm.prz.pza',
'Schleupen.CS.mwm.men.mwa'
)
 
foreach ($permission in $ExecutionPermissionsToGrant)
{
    Set-ExecutionPermission -ExecutionPermissionIdentifier $permission -Group $userGroup -State Granted -Confirm:$false
}

Diesen Gruppen können dann beim Kunden Benutzer zugeordnet werden, um EEG verwenden zu können.

Verwendung von Funktionsrechten eines anderen Landes

Soll ein Funktionsrecht verwendet werden, dass durch ein anderes Land bereitgestellt wird, so muss im einem Konfigurationsskript das Cmdlet New-ExecutionPermission mit dem Parameter IsPreliminary verwendet werden.

New-ExecutionPermission -ExecutionPermissionIdentifier "Schleupen.CS.apl.huj.TuWas" -IsPreliminary

Durch das eigentliche Anlegen im Konfigurationsskript des bereitstellenden Landes werden die weiteren Angaben, wie z.B. der Anzeigename, eingespielt.

Anschluss

Der Anschluss erfolgt über den WebModeler, in dem in dem zuzuordnenden Dialogablauf das Funktionsrecht gesetzt und somit angebunden wird:

Abgrenzung

  • Funktionsrechte sind nicht zu verwechseln mit Service-Rechten, die viel feingranularer sind und insbesondere den Zugriff von nicht Schleupen.CS-Systemen regeln.

Stärken und Schwächen

Die in diesem Abschnitt beschriebenen Stärken und Schwächen sollen eine Entscheidungshilfe an die Hand geben, wann dieses Muster eingesetzt werden kann.

Stärken
  • Zentrales Verfahren
  • Geringer Implementierungsaufwand
Schwächen
  • Etwas aufwendig in der Umsetzung
  • Namensgebung und Hierarchisierung von Bausteinen abweichen

Chatbot not allowed
Cookie Consent mit Real Cookie Banner