Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core workflow 3.0 > Rechte auf Knoten und Anhänge vergeben


Rechte auf Anhänge (Attachments) vergeben

Im laufenden Workflow besteht über die folgenden Interaktionsknoten für Benutzer und Betrachter die Möglichkeit, auf die Anhänge (Attachments) des Workflows zuzugreifen:

Den Zugriff auf die Anhänge setzen Sie in der Registerkarte Parameter des jeweiligen Knotens. 

Parameter im assign- und ui-Knoten

 

Parameter im Knoten Aktuellen Benutzer zuordnen

Folgende Rechte für Anhänge existieren:

Recht Beschreibung Als Expression
Lesend Benutzer / Betrachter erhält das Recht, Anhänge einzusehen. read
Schreibend Benutzer / Betrachter erhält das Recht, Anhänge zu ändern und anzulegen. write
Vollzugriff Benutzer / Betrachter erhält alle Rechte. all
Checkout Benutzer / Betrachter erhält das Recht, Anhänge ein- und auszuchecken. checkout
Protected Benutzer / Betrachter erhält das Recht, Anhänge anzulegen. protected
Kein Zugriff Benutzer / Betrachter erhält keine Rechte. none

Der Zugriff auf die Anhänge besteht über den gesamten Workflow hinweg, solange bis:

Im letzteren Fall erlöschen alle Rechte auf die Anhänge, die über den Workflow gewährt wurden. Ein Benutzer kann also theoretisch im Rahmen eines laufenden Workflows Vollzugriff auf die Anhänge erhalten, obwohl er sonst nur lesenden Zugriff hat. Nach dem Beenden des Workflows besteht der Vollzugriff nicht mehr und die normalen Rechte greifen wieder.

Rechte als Expression vergeben


In den Interaktionsknoten können Sie die Rechte auf die Anhänge per Expression vergeben.

Hinweis: Wenn Sie über Variablen arbeiten, übergeben Sie stets die UUIDs der Objekte, niemals direkt die Objekte.


Ohne Variable

Direktes Angeben der Expression:

[ {id: 'group:GRP_sample_escalation_3'} ]

Direktes Angeben der Expression, mit Übergabe bestimmter Rechte:

[ {id: 'group:GRP_sample_escalation_3', attachmentPermission: 'write'} ]

 

Mit Variable (einfaches Beispiel)

In diesem Beispiel wird die Variable testAssign etwa über einen vorherigen Skript-Knoten befüllt.

 [ {id: token.variables.testAssign, attachmentPermission: 'write'} ]

Alternativ können Sie die Variable mitsamt dem Recht auch in einem Skript-Knoten definieren:

let objects = require('common/objects')(sc.asAdmin());

token.variables.testAssign = [
  {
    id: token.variables.sampleRecipient,
    attachmentPermission: 'write'
  }
];

// Send the token through the default outlet
token.leave('');

 

Mit Variable (komplexeres Beispiel mit Prüfung auf Array)

[].concat(token.variables.stepRecipient).map(m => ({ attachmentPermission:token.variables.stepRecipientAttachmentPermission, id: m }))

In diesem Beispiel wird auf den Inhalt der Variable token.variables.stepRecipient geprüft, da diese theoretisch entweder einen Benutzer / eine Benutzergruppe oder ein Array von Benutzern / Benutzergruppen beinhalten könnte. Durch concat wird dann immer ein Array erstellt.

Alternativ können Sie die Variable mitsamt dem Recht auch in einem Skript-Knoten definieren:

/* global sc, sca, token, instance, outlets, inlet, parameters */
​​​​​
token.variables.stepRecipientAttachmentPermission = 'read';

token.variables.stepReceipientAndPermission = [].concat(token.variables.stepRecipient).map(m => ({ attachmentPermission:token.variables.stepRecipientAttachmentPermission, id: m }));

// Send the token through the default outlet
token.leave('');

Jetzt kann das Ergebnis aus der Variable token.variables.stepReceipientAndPermission in den assign-Knoten als Expression gesetzt werden (inklusive Berechtigung für die Anhänge).

 

RAW-Modus

Über den Raw-Modus können Sie kombinierte Werte eintragen, um die Benutzergruppe dynamisch zu laden.

Etwa wird in einer vorherigen UI oder einem Skript die Variable ac_wf_escalation_level befüllt und im Knoten assign mit dem statischen Gruppennamen kombiniert.

Die UI lässt dies nicht zu, da dort nur existierende Benutzergruppen und Benutzer eingetragen werden können.

"assignees": [
   "group:GRP_sample_escalation_${ac_wf_escalation_level}"
]

// Oder mit Rechten:
"assignees": [
  {
    "attachmentPermission": "write",
    "id": "group:GRP_sample_escalation_${ac_wf_escalation_level}"
  }
]