Переменные в ACL

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Переменные в ACL

Сообщение Agrael » 22 июл 2018, 12:18

Здравствуйте коллеги! Не хватает компаний клиента, так как один сотрудник может работать сразу в 2-3 (и более) компаниях и приходится давать ему много учеток. Сейчас хочу обновиться с 5 до 6 версии и вернулся к этому вопросу. Собственно вопрос в конце этого сообщения.

Решил пойти следующим путем - создал 2 динамических поля (DynamicField):
  • Subdivision. Выпадающий список для заявки. В возможных значениях список подразделений.
  • Subdivisions. Multiselect - множественный выбор для учетной записи клиента. И возможные значения аналогично предыдущему полю.
В Config.pm замапил Subdivisions и теперь при редактировании учетки можно добавить пользователю подразделения.
Для отображения в заявке $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

???
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Переменные в ACL

Сообщение alexus » 22 июл 2018, 13:14

Добрый день!

Разбираться в логике ACL, чтобы по ней восстановить бизнес-задачу - не слишком увлекательное занятие :) Вы опишите простыми словами, что и как вы планируете сделать и в чём вопрос.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Переменные в ACL

Сообщение Agrael » 22 июл 2018, 14:40

Ок, попробую.

Subdivision. Выпадающий список для заявки. В возможных значениях список подразделений.
Subdivisions. Multiselect - множественный выбор для учетной записи клиента. И возможные значения аналогично предыдущему полю.

Нужно с помощью ACL "скопировать" выбранные в учетной записи клиента значения (Subdivisions) в заявку (Subdivision).

Множеством правил получается, но подозреваю можно и одним.
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Переменные в ACL

Сообщение Agrael » 22 июл 2018, 14:55

Почему я предполагаю, что это возможно?
https://forums.otterhub.org/viewtopic.php?t=12346
Здесь правда копируется не целый список, а всего лишь одна текстовая переменная с логином, но а вдруг и мою задачу можно так же...
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Переменные в ACL

Сообщение alexus » 23 июл 2018, 13:09

В приведённом Вами примере, значение не копируется, а сравнивается. Что полностью соответствует логике ACL, которые могут лишь выполнять операции сравнения атрибутов тикета и на основании результата делаеть некоторые ограничения. Само словосочетание Access Control в ACL вполне логично определяет его суть.
А заполнение атрибута клиента в динамическое поле можно сделать - DynamicFieldFromCustomerUser::Mapping + Ticket::EventModulePost###950-DynamicFieldFromCustomerUser
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Переменные в ACL

Сообщение Agrael » 23 июл 2018, 14:42

Спасибо, но вроде не то=((
Попробую еще раз, другими словами, в картинках.

Все возможные подразделения
Изображение

К примеру два из них выбрано в учетной записи клиента
Изображение
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Переменные в ACL

Сообщение Agrael » 23 июл 2018, 14:43

Для тикета еще одно динамическое поле, с теми же значениями
Изображение

Итоговый спецэффект
Изображение

По поводу имеющихся на текущий момент ACL
100 Запретить подразделения - убирает в тикете из DynamicField_Subdivision все значения
Последующие ACL по одному их добавляют, в зависимости от выбранных значений в учетной записи клиента в DynamicField_Subdivisions

Но хотелось бы не по одному, а одним Possible добавить выбранные DynamicField_Subdivisions в DynamicField_Subdivision
Последний раз редактировалось Agrael 23 июл 2018, 14:57, всего редактировалось 1 раз.
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

Agrael
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 22 июл 2018, 11:52
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Переменные в ACL

Сообщение Agrael » 23 июл 2018, 14:52

Бывает так: один управляющий на несколько магазинов, одна заведующая на несколько аптек :roll: ...
А кастомизация зло - при обновлении все накастомизированное надо как минимум внимательно просмотреть, а в большинстве случаев перекастамизировать...

Ссылка на картинки в Яндекс.Диске (для тех, кто будет читать топик, когда вставленные картинки умрут): https://yadi.sk/d/lcVY0avS3ZUVvi
С уважением,
Дмитрий

Prod: OTRS 5.0.12 Free on CentOS 7 x64 Linux with MariaDB 10.0

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Переменные в ACL

Сообщение alexus » 26 июл 2018, 23:12

ACL выбирать значения не умеет, он может их только ФИЛЬТРОВАТЬ.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Ответить