Клиенты авторизуются через LDAP, в систему подтягивается ряд их атрибутов, заполненных в свойствах учётных записей AD.
Задача - ограничить пользователю список доступных очередей, куда он может направит заявку. На текущий момент это, условно говоря, общая очередь службы поддержки и очередь собственного подразделения. Наименования очередей подразделений имеют вид "x.y.z department_name" - т.е. код подразделения и его текстовое название. В атрибутах пользователя есть и то, и другое.
Казалось, бы всё просто: берёшь из атрибутов CustomerUser код подразделения и в разделе Possible для Ticket - Queue - Name вставляешь (строго или по RegExp) это самое значение из атрибутов клиента. Однако мне никак не удаётся заставить ACL "увидеть" или "понять" это самое значение.
Если напрямую указываешь, если, мол, код подразделения клиента равен "х.х.х", то разрешить очередь "[regexp]х.х.х" - всё работает.
Но очередей-то не десяток и не два (да, я знаю, что это плохо, но сейчас это неизбежно).
На текущий момент (куда ж деваться, работать-то должно всё уже сейчас) пришлось создать несколько десятков таких фильтрующих ACL
Это неимоверно коробит и унижает, особенно, когда подозреваешь, что можно было обойтись одним-единственным, который понимает переменные.
Можно ли как-то унифицировать эту часть ACL???
Код: Выделить всё
PossibleAdd:
Ticket:
Queue:
- '[regexp]1.2.3'
ConfigMatch:
Properties:
CustomerUser:
UserDepartmentCode:
- 1.2.3