Menü der Dokumentation

Konfigurieren von Berechtigungen

Im Bereich Berechtigungen können Sie zusätzliche Konfigurationen zu Berechtigungen von Verträgen erstellen.

Sie können verschiedene Regeln hinterlegen. Aktivieren Sie dazu die Regelengine. Sie können so automatisch Regeln ausführen, die bewirken, dass zusätzliche Berechtigungen am Vertrag gespeichert werden.

Aktivieren der Regelengine - So geht's

  1. Melden sie sich auf https://contracts-config.d-velop365.com/ an.

  2. Wählen Sie Ihre Konfiguration.

  3. Wählen Sie Berechtigungen.

  4. Setzen Sie in der JSON-Datei folgenden Schalter:

    Schalter für die Regelengine

     "ruleEngineEnabled": true,
  5. Sichern Sie Ihre Änderungen mit Speichern.

Das Berechtigungsregelwerk wird bei der Neuanlage oder Änderung von Vertragseigenschaften ausgeführt. Dabei werden alle Regeln daraufhin überprüft, ob sie anwendbar sind und ob ihre Berechtigungen auf den Vertrag angewendet werden sollen. Die so ermittelte Gesamtzahl der Berechtigungen wird auf den Vertrag angewendet. Ungültige Berechtigungen werden gelöscht.

Anmerkung

Bitte beachten Sie, dass Anpassungen der Berechtigungen nicht automatisch für alle bestehenden Verträge gelten. Wenn Sie möchten, dass die Anpassungen auch für alle bestehenden Verträge gelten, wenden Sie sich bitte an unser Support-Team (support@d-velop.de).

Beachten Sie auch die folgenden Kapitel:

Parameter zum Konfigurieren der Berechtigungen

Folgende Parameter stehen Ihnen für die Konfiguration der Berechtigungen zur Verfügung:

  • restrictItemPermissionWhenCreated: Unterbrechen der Vererbung von Rollenzuweisungen.

  • uniquePermissionsEnabled: Gibt an, ob in der Vertragsanzeige und Erstellungsansicht, der Nutzer die Möglichkeit haben soll, anderen Nutzern den Lesezugriff auf seinen Vertrag zu geben.

  • ruleEngineEnabled: Gibt an, ob die unten stehenden Regeln angewendet werden sollen.

  • rules: Hier definieren Sie die Regeln, nach denen Benutzern Berechtigungen zugewiesen werden.

    Für die Regeln gibt es folgende Konfigurationsoptionen:

    • priority: Die Priorität, nach der die Regeln abgearbeitet werden. Je größer die Zahl, desto eher wird die Regel bearbeitet.

    • condition: Die Bedingung, unter der die Regel angewendet wird, können Sie so konfiguriert werden:

      • all: Alle Bedingungen in dieser Liste müssen erfüllt werden.

      • any: Irgendeine dieser Bedingungen muss erfüllt werden.

        In den all oder any-Listen können weitere Bedingungen mit all oder any geschrieben werden.

        Eine Bedingung kann angegeben werden mit folgenden Optionen:

        • fact: Ein Wert aus dem Vertrag.

        • path (Optional): Können Sie verwenden, wenn fact ein Objekt ist (z.B. Verwaltete Metadaten) und Sie auf einen Wert zugreifen möchten (siehe Beispiel, unten).

          • Für Felder vom Typ Verwaltete Metadaten

            "path": "$.TermGuid"
        • operator:

          • Für Text und Zahlen:

            • equal

            • notEqual

            • in: Die Liste value muss fact enthalten.

            • notIn: Die Liste value darf fact nicht enthalten.

          • Für Zahlen:

            • greaterThan

            • lessThan

            • greaterThanInclusive

            • lessThanInclusive

          • Für Arrays:

            • contains: Die Liste fact muss value enthalten.

            • doesNotContain: Die Liste fact darf value nicht enthalten.

            • containsObject: Die Liste fact muss eine Liste von Objekten sein (z.B. mehrwertige verwaltete Metadaten). value muss ein Objekt sein. Jede Eigenschaft muss an einem Objekt der Liste fact enthalten sein:

              {
                  "fact": "ecsCustomMultiTerm",
                  "operator": "containsObject",
                  "value": { 
              		"TermGuid": "00000000-0000-0000-0000-000000000000" 
              	}
              }
            • value: Ein Wert.

              "value": {"fact": "ecsCustomBool"}
  • action: Aktuell ist als einzige Option "permission-add" zu wählen.

  • data:

    • description: Die kurze Beschreibung der Regel.

    • users: Die Nutzer, auf die die Regel angewendet wird können ausgewählt werden anhand dieser Faktoren:

      • loginName: Die E-Mail-Adresse des Users.

      • fact: Ein Vertragsfeld, in dem Nutzer ausgewählt werden können.

      • principalId: Die Nutzer ID, z.B.: . Es kann auf Vertragsinhalte z.B. so zugegriffen werden: "${ecsResponsibleId}".

    • groups: Die Gruppen, auf die die Regel angewendet wird, können ausgewählt werden anhand dieser Faktoren:

      • groupName: Gruppen Name

      • principalId: Gruppen ID aus SharePoint Online

    • roles: Die Berechtigungen, die die Gruppen oder Nutzer auf diesen Vertrag bekommen:

      • roleId:

        Typ: Zahl

        Beschreibung: Die ID der Rolle.

      • roleName:

        Typ: Text

        Beschreibung: Der Name der Rolle/Berechtigung.

        SharePoint Rollendefinitionen:

        • Full Control

        • Design

        • Edit

        • Contribute

        • Read

        • Limited Access

        • View Only

Anwenden des Berechtigungsregelwerks

Wenn Sie das Berechtigungsregelwerk angepasst haben, müssen Sie das Regelwerk auf die bestehenden Verträge anwenden. Für die Anwendung des Regelwerks haben Sie zwei Optionen:

  1. Verwenden Sie die Schaltfläche Regeln auf einen Vertrag anwenden und geben Sie eine Vertrags-ID ein, um das Regelwerk auf einen bestehenden Vertrag anzuwenden. Solange das System den Vertrag bearbeitet, bleibt die Schaltfläche Regeln auf einen Vertrag anwenden deaktiviert.

  2. Verwenden Sie die Schaltfläche Regeln auf alle Elemente anwenden, um das Regelwerk auf alle bestehenden Verträge anzuwenden. Diese Option kann das System stark belasten. Solange das System die Verträge bearbeitet, bleibt die Schaltfläche Regeln auf alle Elemente anwenden deaktiviert.

Beispiel zum Konfigurieren der Berechtigungen

Diese Beispielkonfiguration für Berechtigungen zeigt Ihnen unterschiedliche Möglichkeiten, wie Sie mit Berechtigungen vorgehen können.

Zuerst werden Parameter gesetzt, die für alle Regeln gelten. Danach werden die Regeln gemäß ihrer Priorität abgearbeitet.

Da restrictItemPermissionWhenCreated auf true gesetzt ist, werden die Berechtigungen, die Nutzer auf die Liste haben, nicht auf den Vertrag vererbt.

Wegen uniquePermissionsEnabled wird den Nutzern bei Vertragserstellung und Bearbeitung im Bereich Berechtigungen eines Vertrages die Möglichkeit gegeben, weiteren Nutzer Lese- und Schreibrechte zu geben. Diese Berechtigungen werden durch die 3. und 4. Regel ("priority": 360 und "priority": 350) angewendet.

Die erste Regel ("priority": 500) gibt dem Ersteller und der verantwortlichen Person volle Rechte.

Die fünfte Regel ("priority": 300) gewährt einer Gruppe Bearbeitungszugriff, wenn in den Vertragsdetails im Feld ecsCustomLookup das Element mit der ID 41, 42, 43 oder 44 steht. Die fact-Eigenschaft benötigt am Feldnamen das Suffix Id.

Die sechste Regel ("priority": 310) berechtigt eine bestimmte Gruppe mit Lesezugriff, wenn in den Details im Feld ecsCustomMultiLookup mindestens das Element mit der ID 20 ausgewählt ist. Die fact-Eigenschaft benötigt am Feldnamen das Suffix Id.

Die siebte Regel ("priority": 320) gibt der Gruppe Legal Berechtigungen zum Mitwirken, wenn in den Vertragsdetails im Feld ecsCustomMultiTerm mindestens das Element mit der Term-ID 60a3464b-00aa-4f40-92ed-3569a4a88a41 enthalten ist.

Die letzte Regel ("priority": 600) wird verwendet, um einer bestimmten Gruppe Lesezugriff zu gewähren, wenn die Gruppe in der organisatorischen Zuordnung in den Stammdaten eines Vertrages ausgewählt wurde. So kann auch jemand in der North-Gruppe Schreibzugriff bekommen, wenn er im Bereich Berechtigungen eines Vertrages dazu berechtigt wurde.

Anmerkung

Auch Personen- oder Mehrfachpersonenfelder benötigen am Feldnamen das Suffix Id. Der Wert, der verglichen wird, muss eine Zahl sein. Mehrfachpersonenfelder werden als Integer-Array dargestellt und sind mittels contains oder doesNotContain überprüfbar.

Beispielkonfiguration für Berechtigungen 

{
    "restrictItemPermissionWhenCreated": true,
    "uniquePermissionsEnabled": true,
    "ruleEngineEnabled": true,
    "rules": [
        {
            "priority": 500,
            "condition": {
                "all": []
            },
            "action": "permission-add",
            "data": {
                "description": "DEFAULT: Give full access to author and responsible persons",
                "users": [
                    {
                        "principalId": "${ecsResponsibleId}"
                    },
                    {
                        "principalId": "${AuthorId}"
                    }
                ],
                "groups": [
                    {
                        "groupName": "ecspand Development"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Full Control"
                    }
                ]
            }
        },
        {
            "priority": 360,
            "condition": {
                "all": []
            },
            "action": "permission-add",
            "data": {
                "description": "DEFAULT: Give ecsPermissionRead users read access ",
                "users": [
                    {
                        "fact": "ecsPermissionReadId"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Read"
                    }
                ]
            }
        },
        {
            "priority": 350,
            "condition": {
                "all": []
            },
            "action": "permission-add",
            "data": {
                "description": "DEFAULT: Give ecsPermissionWrite-Users write access",
                "users": [
                    {
                        "fact": "ecsPermissionWriteId"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Edit"
                    }
                ]
            }
        },
        {
            "priority": 450,
            "condition": {
                "all": [
                    {
                        "fact": "ecsCustomBool",
                        "operator": "equal",
                        "value": true
                    }
                ]
            },
            "action": "permission-add",
            "data": {
                "description": "Always give the data security officer access if ecsCustomBool = 1",
                "users": [
                    {
                        "loginName": "data-security-officer@azuredvelop.onmicrosoft.com"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Read"
                    }
                ]
            }
        },
        {
            "priority": 300,
            "condition": {
                "all": [
                    {
                        "fact": "ecsCustomLookupId",
                        "operator": "in",
                        "value": [41, 42, 43, 44]
                    }
                ]
            },
            "action": "permission-add",
            "data": {
                "description": "Give everybody from the group 'South' access if selected lookup value's id is one of 41, 42, 43 or 44",
                "groups": [
                    {
                        "groupName": "South"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Edit"
                    }
                ]
            }
        },
        {
            "priority": 310,
            "condition": {
                "all": [
                    {
                        "fact": "ecsCustomMultiLookupId",
                        "operator": "contains",
                        "value": 20
                    }
                ]
            },
            "action": "permission-add",
            "data": {
                "description": "Give everybody from the group 'West' access if multi lookup contains selected item with id 20",
                "groups": [
                    {
                        "groupName": "West"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Read"
                    }
                ]
            }
        },
        {
            "priority": 320,
            "condition": {
                "all": [
                    {
                        "fact": "ecsCustomMultiTerm",
                        "operator": "containsObject",
                        "value": {
                            "TermGuid": "60a3464b-00aa-4f40-92ed-3569a4a88a41"
                        }
                    }
                ]
            },
            "action": "permission-add",
            "data": {
                "description": "Give everybody from the department 'Legal' access if the multi-managed metadata field contains the term with the TermGuid = 60a3464b-00aa-4f40-92ed-3569a4a88a41",
                "groups": [
                    {
                        "groupName": "Legal"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Contribute"
                    }
                ]
            }
        },
        {
            "priority": 600,
            "condition": {
                "all": [
                    {
                        "fact": "ecsContractOrganization",
                        "path": "$.TermGuid",
                        "operator": "equal",
                        "value": "20dad1d8-72ee-4659-8c3b-929d31f2237e"
                    }
                ]
            },
            "action": "permission-add",
            "data": {
                "description": "Give everybody from the 'North' departmend read access, if the ecsContractOrganization equals 'North'",
                "groups": [
                    {
                        "groupName": "North"
                    }
                ],
                "roles": [
                    {
                        "roleName": "Read"
                    }
                ]
            }
        }
    ]
}