Решил пойти следующим путем - создал 2 динамических поля (DynamicField):
- Subdivision. Выпадающий список для заявки. В возможных значениях список подразделений.
- Subdivisions. Multiselect - множественный выбор для учетной записи клиента. И возможные значения аналогично предыдущему полю.
Для отображения в заявке $Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'DynamicField'} = {'Subdivision' => '2'};
Далее ACL
---
ConfigChange:
Possible:
Ticket:
DynamicField_Subdivision: []
ConfigMatch:
Properties:
Frontend:
Action:
- CustomerTicketMessage
Name: 100 Запретить подразделения
StopAfterMatch: 0
---
ConfigChange:
PossibleAdd:
Ticket:
DynamicField_Subdivision:
- '001'
ConfigMatch:
Properties:
CustomerUser:
DynamicField_Subdivisions:
- '001'
Frontend:
Action:
- CustomerTicketMessage
Name: 110 Разрешить подразделение 001
StopAfterMatch: 0
---
ConfigChange:
PossibleAdd:
Ticket:
DynamicField_Subdivision:
- '002'
ConfigMatch:
Properties:
CustomerUser:
DynamicField_Subdivisions:
- '002'
Frontend:
Action:
- CustomerTicketMessage
Name: 110 Разрешить подразделение 002
StopAfterMatch: 0
И собственно вопрос, над которым затупил. Можно ли сделать одним правилом как-то так:
---
ConfigChange:
Possible:
Ticket:
DynamicField_Subdivision:
- $Env{"DynamicField_Subdivisions"}'
ConfigMatch:
Properties:
Frontend:
Action:
- CustomerTicketMessage
Name: 100 Разрешить подразделения
StopAfterMatch: 0
???