Inhaltliche Einschränkungen für Workflows definieren

Inhaltliche Einschränkungen für Workflows definieren

Mit Hilfe von Workflows können Unternehmen nicht nur die Teams festlegen, die Arbeitskopien anlegen und veröffentlichen können. Sie ermöglichen es darüber hinaus, Einschränkungen (Restriktionen) zu definieren, so dass die Teammitglieder nur in bestimmten Website-Bereichen oder an Inhalten eines bestimmten Typs Änderungen vornehmen können. Hat ein Workflow keine solchen Einschränkungen, können die Redakteure nach Belieben Inhalte hinzufügen, ändern oder löschen.

Restriktionen werden als JSON-Array angegeben, dessen Elemente Berechtigungen sind. Jede Berechtigung ist ein Array von Bedingungen.

Die inhaltlichen Restriktionen eines Workflows ergeben sich aus einer Liste von Berechtigungen. Sie können beliebig viele solcher Berechtigungen angeben, und jede zusätzliche erweitert den Handlungsspielraum der Teams entsprechend.

Eine Berechtigung besteht aus einer oder mehreren Bedingungen, die sich jeweils auf einen Attributwert beziehen. Ein CMS-Objekt ist dann im Rahmen des Workflows änderbar, wenn dessen Attributwerte diese Bedingungen erfüllen. Umfasst eine Berechtigung mehrere Bedingungen, müssen alle zutreffen, damit die Berechtigung wirksam wird. Bedingungen können auch negiert werden.

Hier einige Beispiele:

BerechtigungEin CMS-Objekt wird durch den Workflow änderbar, wenn …
[[{ "field": "_site_id", "operator": "equals", "value": "english" }]]… sein _siteId-Objekt-Attribut den Wert english hat.
[[{ "field": "lang", "operator": "equals", "value": ["en", "de"] }]]
… sein lang-Attribut den Wert en oder de hat.
[[{ "field": "lang", "operator": "equals", "value": ["fr", "it"], "negate": true }]]
… sein lang-Attribut weder fr noch it enthält.
[[{ "field": "multilang", "operator": "equals", "value": "yes" }, { "field": "lang", "operator": "equals", "value": "en" }]]… sein multilang-Attribut yes sowie sein lang-Attribut en enthält.

Als das field einer Bedingung können die vorgegebenen Attribute _obj_class, _path und _site_id sowie alle projektspezifisch definierten Attribute vom Typ string, stringlist, enum und multienum angegeben werden.

Als Operator können neben equals auch starts_with und is_inside_subtree_of verwendet werden, jedoch nur in Verbindung mit dem Attribut _path. starts_with prüft, ob sich ein CMS-Objekt unmittelbar oder mittelbar unterhalb eines bestimmten anderen Objekts befindet, also zu einem bestimmten Abschnitt der Seitenhierarchie gehört. is_inside_subtree_of bewirkt dasselbe, erwartet als value jedoch eine Objekt-ID, keinen Pfadpräfix.

Berechtigung Ein CMS-Objekt wird durch den Workflow änderbar, wenn …
[[{ "field": "_path", "operator": "starts_with", "value": "/product" }]] … der Wert seines Attributs _path mit /product beginnt.
[[{ "field": "_path", "operator": "is_inside_subtree_of", "value": "2b2883c23aca09da" }]]
… der Wert seines Attributs _path mit dem Wert von _path des Objekts mit der ID 2b2883c23aca09da beginnt.

Wenn in dem zweiten und letzten obigen Beispiel das Objekt mit der angegebenen ID keinen Pfad hat, trifft die Bedingung is_inside_subtree_of nur bei diesem Objekt zu.