Dynamic Fields (webservice dropdown)- Verfügbare Variablen im Controller Mapping des Requester Transports

Hilfe zu OTRS Problemen aller Art
Post Reply
znuny123
Znuny newbie
Posts: 2
Joined: 11 May 2023, 11:04
Znuny Version: 6.5
Real Name: Martin D

Dynamic Fields (webservice dropdown)- Verfügbare Variablen im Controller Mapping des Requester Transports

Post by znuny123 »

Hi

aktuelle Version: 6.5

wir versuchen gerade ACLs umzusetzen, welche auf Basis von "Tags" die dem Kundenbenutzer zugewiesen sind, die Sichtbarkeit von Tickets erlaubt.

Bisheriges Setup:

Wir haben ein dynamisches Feld "Projekt" erstellt dessen möglichen Typen mittels eines Webservice von extern abgefragt werden.
Dem HTTP::REST Transport wird die :CustomerUser Variable als Parameter im "Controller mapping for Invoker" mitgegeben.

Dieses Feld wird beim Ticket erstellen (Agent&&Kundeninterface) als zwingendes Feld eingeblendet (per dynamic fields <-> screens).

Wenn ein Benutzer im Kundeninterface ein Ticket erstellt, hat er damit "seine Tags" zur Auswahl und muss eines davon wählen.
Der Tag wird somit beim Anlegen des Tickets mit diesem verknüpft.

Will ein Benutzer im Kundeninterface ein Ticket ansehen so wird per custom ACL-Modul geprüft, ob der lesende Benutzer auch den Tag des Tickets bei sich hinterlegt hat. Wenn das nicht der Fall ist, wird das entsprechend per PossibleNot ->Action->CustomerTicketZoom unterbunden.
Die ACL nutzt dabei den selben Endpoint, welcher auch vom Webservice fürs Dynamic-Field benutzt wird.

Der Teil funktioniert soweit auch recht problemlos. In einem externen System werden die Tags für die Benutzer vergeben und die Sichtbarkeitseinschränkung funktioniert wie gewünscht.

Problemstellung :)

Im Agent Interface scheint man keinen Zugriff auf die :CustomerUser Variable im HTTP::REST Transport zu haben.
Dadurch ist es nicht möglich beim Erstellen (bzw auch beim Beantworten) eines Tickets, die für den Kundenbenutzer spezifischen Tags vom Webservice abzufragen.

Soweit wir sehen werden die Variablen in der Loop in

"Kernel/GenericInterface/Transport/HTTP/REST.pm
Zeile 902: "for my $FlattenedParamName ( sort keys %FlattenedParamData )"

ersetzt.
Die möglichen Werte werden dabei durch $Param{Data} bestimmt. Dieser Hash enthält aber im AgentInterface keine Customer* Werte.
Dadurch schlägt das Ersetzen der :CustomerUser Variable fehl.
Ist es möglich den Param-Hash im AgentInterface irgendwie um die Customer* Werte zu erweitern?


Wir freuen uns über jeden Hint :)

Lg
\md
znuny123
Znuny newbie
Posts: 2
Joined: 11 May 2023, 11:04
Znuny Version: 6.5
Real Name: Martin D

[Solved] Dynamic Fields (webservice dropdown)- Verfügbare Variablen im Controller Mapping des Requester Transports

Post by znuny123 »

Hi zusammen

das Thema konnte zusammen mit Znuny GmbH gelöst werden.
Vielen Dank!
Post Reply