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): Kann benutzt werden, wenn der fact ein Objekt oder Array ist und man auf einen Wert zugreifen möchte (siehe Beispiel, unten).

          • Für Felder vom Typ Multi-Choice

            "path": "$.results"
          • Für Felder vom Typ Verwaltete Metadaten

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

          • Für Text und Zahlen:

            • equal

            • notEqual

          • Für Zahlen:

            • greaterThan

            • lessThan

            • greaterThanInclusive

            • lessThanInclusive

          • Für Arrays:

            • in: fact muss in der Liste value enthalten sein.

            • notIn. fact darf nicht in der Liste value enthalten sein.

            • contains. Die Liste fact muss value enthalten.

            • doesNotContain: Die Liste fact darf nicht value enthalten.

        • value: Ein Wert. Es kann auch der fact mit einem weiteren Wert aus dem Vertrag verglichen werden:

          "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 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.

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": 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"
                    }
                ]
            }
        }
    ]
}