Table of Contents

Namespace Zedal.Sdk.Apis.Diwass.Permissions

Classes

PermissionMatrix

Rollen-Permission-Matrix für DIWASS-Intents (Submission, Movement, Annex7).

Die Matrix prüft ausschließlich den Rollen-Aspekt: darf eine gegebene Rolle die Aktion grundsätzlich ausführen? Ob die Aktion im aktuellen Dokumentzustand zulässig ist, entscheidet weiter BxA über die von ihm gelieferte FollowupIntents-Liste; die Permission-Matrix bildet die Schnittmenge aus „rollen-erlaubt" und „lifecycle-erlaubt".

Server-seitige Validierung bleibt orthogonal — die Matrix dient als Pre-Check für UI/CLI und ersetzt keine Server-Antwort.

PermissionMatrixInference

Rollen-Inferenz aus currentOperatorId(s) × Document. Pro Schein-Typ gibt es eine eigene InferRoles-Methode, die alle Party-Slots des Dokuments durchgeht und alle Rollen zurückgibt, in denen mindestens eine der übergebenen OperatorIds im Doc steht. Der Single-Operator-Pfad (typischer UI-Fall: ein eingeloggter Account) und der Mehr-Operator-Pfad (Operator-Verbund / mehrere Accounts auf einer Logik-Einheit) teilen sich dieselbe Implementierung — Single delegiert auf Plural.

Quelle ist immer die Server-Sicht. Inferenz arbeitet ausschließlich auf den Get*-Information-Typen (Infotech.Zedal.Documents.V1.Diwass.Waste.Retrieval.V1.NotificationInformationType, Infotech.Zedal.Documents.V1.Diwass.Waste.Retrieval.V1.Annex7InformationType) bzw. der im Movement-Aggregat referenzierten GetNotificationResponse. Submission-/Update-Requests sind als Eingang verboten — sie sind ein Wunsch des Notifizierenden; erst nach dem Abschicken legt der Server fest, welche Operatoren in welchem Slot landen.

Authority wird hier nicht inferiert — Behörden haben keine OperatorInternalId im Dokument. Wer als Competent Authority handelt, übergibt Role.Authority direkt an die rollen-basierten Methoden auf PermissionMatrix.

Enums

Role

Rollen, die ein Akteur in einem DIWASS-Schein einnehmen kann. Ein Akteur (eine OperatorInternalId) kann mehrere Rollen gleichzeitig halten — z.B. wenn dieselbe Firma als Notifizierer und Erzeuger im Dokument steht. Die Permission-Matrix bildet daher Mengen von Rollen, keine Einzelrolle.

Authority wird nicht aus der OperatorInternalId abgeleitet (Behörden haben keine OperatorInternalId im Dokument); diese Rolle muss vom Aufrufer explizit übergeben werden, wenn er als Competent Authority handelt.