Search the FirstSpirit Knowledge Base
Wir möchten gerne für Schulungen eine Gruppe (SCHULUNG) temporär berechtigen.
Die Rechte sollen mit einem BeanShell - Script automatisiert vor der Schulung gesetzt und danach wieder entfernt werden.
Für die diversen Stores sollte es über storeElement.setPermission und storeElement.removePermission funktionieren, für die Transitions eines Workflows gibt es dazu aber nichts Vergleichbares.
Mit transition.getAllowedGroups erhält man zwar die berechtigten Gruppen, kann diese mit API-Methoden aber nicht erweitern oder verkleinern.
Dazu meine Frage: Gibt es eine Möglichkeit, via API, Gruppen zu den erlaubten Gruppen einer Transition hinzuzufügen bzw. wieder herauszulöschen?
Wir verwenden die FirstSpirit - Version 4.2.437.
Anbei der Dialog für die Berechtigung von Gruppen, eine Transition zu nutzen.
Hallo Gerhard,
im Dialog "Rechtevergabe" (Rechtsklick auf ein Element -> "Extras" -> "Rechte ändern") kannst du im Bereich "Arbeitsablauf Rechte" unten spezielle Rechte für Transitionen definieren:
Die Methode getTransitionPermissions liefert dir die Rechte, die du in diesem Bereich definiert hast.
Du könntest also z.B. bei den betroffenen Transitionen einen Haken setzen und dann über API Methoden die gewünschten Rechte setzen und entfernen.
Gruß
Tim
Hallo Gerhard,
es ist leider nicht möglich, die erlaubten Gruppen für eine Transition per API direkt am Workflow zu ändern. Allerdings geht es sehr wohl am StoreElement über folgenden Weg:
Auf dem StoreElement:
WorkflowPermission[] getWorkflowPermissions()
bzw.
WorkflowPermission getWorkflowPermission(Workflow workflow)
Und danach auf der WorkflowPermission:
WorkflowTransitionPermission[] getTransitionPermissions()
bzw.
WorkflowTransitionPermission getTransitionPermission(Transition transition)
Viele Grüße
Donato
Hallo Donato,
vielen Dank für deine Antwort, das wäre schon eine super Lösung.
Ich habe allerdings das Problem, dass ich kein StoredElement finde, bei dem die WorkflowPermissions gefüllt sind.
Beim Aufruf von
WorkflowPermission wp = el.getWorkflowPermission((Workflow)el);
oder
WorkflowPermission [] wp = el.getWorkflowPermissions();
erhalte ich immer null bzw. ein leeres Array zurück.
el ist dabei ein Workflow-Objekt.
Gibt es dafür eine Erklärung?
Viele Grüße
Gerhard
Hallo Gerhard,
das StoreElement, das ich meine, wäre das Element, auf dem der Workflow ausgeführt werden soll, nicht der Workflow selbst.
Viele Grüße
Donato
Hallo Donato,
ich habe jetzt StoreElemente (PageStoreRoot, SiteStoreRoot, ContentStoreRoot, MediaStoreRoot) gefunden, auf denen Workflow Permissions definiert sind, jedoch sind dort die Workflow Transaction Permissions leer, d.h., die Methode
wp.getTransitionPermissions();
liefert ein leeres WorkflowTransitionPermission Array zurück.
Gibt es dafür auch noch eine Lösung?
Vielen Dank
Gerhard
Hallo Gerhard,
wir schauen uns das gerade mal etwas genauer an. Sobald wir mehr wissen, melden wir uns nochmal.
Viele Grüße
Donato
Hallo Gerhard,
im Dialog "Rechtevergabe" (Rechtsklick auf ein Element -> "Extras" -> "Rechte ändern") kannst du im Bereich "Arbeitsablauf Rechte" unten spezielle Rechte für Transitionen definieren:
Die Methode getTransitionPermissions liefert dir die Rechte, die du in diesem Bereich definiert hast.
Du könntest also z.B. bei den betroffenen Transitionen einen Haken setzen und dann über API Methoden die gewünschten Rechte setzen und entfernen.
Gruß
Tim
Hallo Tim,
vielen Dank für die Antwort, das erklärt das Problem.
Wir haben die Ausführungsrechte immer direkt im Workflow bei den Transitions angegeben und nicht im Rechtedialog.
D.h., dass wir hier derzeit keinen Automatismus haben können.
Viele Grüße
Gerhard