Class PermissionMatrixInference
- Namespace
- Zedal.Sdk.Apis.Diwass.Permissions
- Assembly
- Zedal.Sdk.dll
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.
public static class PermissionMatrixInference
- Inheritance
-
PermissionMatrixInference
- Inherited Members
Methods
- CanPerform(IEnumerable<long>, DiwassIntents, Annex7InformationType)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(IEnumerable<long>, DiwassIntents, NotificationInformationType)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(IEnumerable<long>, DiwassIntents, Document)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(IEnumerable<long>, DiwassIntents, AnnexViiDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(IEnumerable<long>, DiwassIntents, MovementDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(IEnumerable<long>, DiwassIntents, NotificationDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, Annex7InformationType)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, NotificationInformationType)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, Document)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, AnnexViiDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, MovementDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- CanPerform(long, DiwassIntents, NotificationDocument)
Vereinigung der erlaubten Intents über mehrere Rollen — passt zur Inferenz-API, die für eine OperatorId mehrere Rollen zurückgeben kann (z.B. S&F = Notifizierer + Erzeuger) und zu Aufrufern, die einen Operator-Verbund mit mehreren OperatorIds prüfen.
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, Annex7InformationType)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, NotificationInformationType)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, Document)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, AnnexViiDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, MovementDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(IEnumerable<long>, IEnumerable<DiwassIntents>, NotificationDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, Annex7InformationType)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, NotificationInformationType)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, Document)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, AnnexViiDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, MovementDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- Filter(long, IEnumerable<DiwassIntents>, NotificationDocument)
Schnittmenge auf Rollen-Mengen-Basis (Union der Allow-Listen × Eingabestrom).
- InferRoles(IEnumerable<long>, Annex7InformationType)
Sucht eine der
operatorIdsin den Party-Slots der Server-bestätigtenTransportAnnouncementund liefert alle gefundenen Rollen. Der Annex7-Arranger ist semantisch der Notifizierer. Eingang ist die Server-Information ausGetAnnex7Response— niemals der Submit-/Update-Request.
- InferRoles(IEnumerable<long>, NotificationInformationType)
Sucht eine der
operatorIdsin den Party-Slots der Server-bestätigten Submission und liefert alle gefundenen Rollen. Eingang ist die Server-Information ausGetNotificationResponse— niemals der Submit-/Update-Request, da dort die Slot-Belegung noch nicht final ist.
- InferRoles(IEnumerable<long>, Document)
Inferenz auf dem Aggregat-Infotech.Zedal.Documents.V1.Document. Greift ausschließlich auf die Server-Information zu:
- Notification →
GetNotificationResponse.NotificationInformation - Annex7 →
GetAnnex7Response(entspricht Infotech.Zedal.Documents.V1.Diwass.Waste.Retrieval.V1.Annex7InformationType) - Movement → die im Movement-Aggregat referenzierte
GetNotificationResponse.NotificationInformation(Movement-Stages tragen keine Operator-Slots; die Rollen kommen aus der Notification-Submission)
Liegt für den jeweiligen Sub-Doc-Typ keine Server-Information vor, gibt die Methode ein leeres Set zurück — Rollen sind dann (noch) nicht final.
- Notification →
- InferRoles(IEnumerable<long>, AnnexViiDocument)
Convenience für
handler.Annex7: zieht intern die Server-Information ausDiwassMessage.GetAnnex7Responseund delegiert.
- InferRoles(IEnumerable<long>, MovementDocument)
Convenience für
handler.Movement: Movement-Stages tragen keine eigenen Operator-Slots, also greift die Inferenz auf die im Movement-Aggregat referenzierte Notification (DiwassMessage.GetNotificationResponse.NotificationInformation) zu.
- InferRoles(IEnumerable<long>, NotificationDocument)
Convenience für
handler.Notification: zieht intern die Server- Information ausDiwassMessage.GetNotificationResponse.NotificationInformationund delegiert. Liegt noch kein GetResponse vor (z.B. direkt nachCreateSubmissionvor dem ersten Pull), kommt ein leeres Set zurück.
- InferRoles(long, Annex7InformationType)
Sucht eine der
operatorIdsin den Party-Slots der Server-bestätigtenTransportAnnouncementund liefert alle gefundenen Rollen. Der Annex7-Arranger ist semantisch der Notifizierer. Eingang ist die Server-Information ausGetAnnex7Response— niemals der Submit-/Update-Request.
- InferRoles(long, NotificationInformationType)
Sucht eine der
operatorIdsin den Party-Slots der Server-bestätigten Submission und liefert alle gefundenen Rollen. Eingang ist die Server-Information ausGetNotificationResponse— niemals der Submit-/Update-Request, da dort die Slot-Belegung noch nicht final ist.
- InferRoles(long, Document)
Inferenz auf dem Aggregat-Infotech.Zedal.Documents.V1.Document. Greift ausschließlich auf die Server-Information zu:
- Notification →
GetNotificationResponse.NotificationInformation - Annex7 →
GetAnnex7Response(entspricht Infotech.Zedal.Documents.V1.Diwass.Waste.Retrieval.V1.Annex7InformationType) - Movement → die im Movement-Aggregat referenzierte
GetNotificationResponse.NotificationInformation(Movement-Stages tragen keine Operator-Slots; die Rollen kommen aus der Notification-Submission)
Liegt für den jeweiligen Sub-Doc-Typ keine Server-Information vor, gibt die Methode ein leeres Set zurück — Rollen sind dann (noch) nicht final.
- Notification →
- InferRoles(long, AnnexViiDocument)
Convenience für
handler.Annex7: zieht intern die Server-Information ausDiwassMessage.GetAnnex7Responseund delegiert.
- InferRoles(long, MovementDocument)
Convenience für
handler.Movement: Movement-Stages tragen keine eigenen Operator-Slots, also greift die Inferenz auf die im Movement-Aggregat referenzierte Notification (DiwassMessage.GetNotificationResponse.NotificationInformation) zu.
- InferRoles(long, NotificationDocument)
Convenience für
handler.Notification: zieht intern die Server- Information ausDiwassMessage.GetNotificationResponse.NotificationInformationund delegiert. Liegt noch kein GetResponse vor (z.B. direkt nachCreateSubmissionvor dem ersten Pull), kommt ein leeres Set zurück.