Использование ACL

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

Модератор: ykolesnikov

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Использование ACL

Сообщение ykolesnikov » 09 фев 2012, 07:54

Добрый день, коллеги!
Хотелось бы прояснить ряд вопросов использования ACL в OTRS, которые непрозрачны после чтения документации и просмотра примеров.
1. В какой момент включатся в работу ACL (считаем, что текст написан и сохранен в config.pm), Т.е. я имею в виду, например, при создании заявки клиентом - он вводит атрибуты заявки и я хочу ограничить(поставить в зависимость) значение FreeTextField(DynamicField) набором значений, зависящим от CustomerID или другого, ранее введенного атрибута заявки - могу ли? Уже применимо?

2. Можно ли использовать русские буквы в значениях (имена очередей...)
3. Существует ли полный список "Action", которые можно использовать в ACL? Есть раздел в мануале Example 18.5. Reference showing all possible important ACL settings но ответа на этот мой вопрос в нем как-то не вижу.
4. Как правильно вводить в списках имена атрибутов, скажем Очередей, Сервисов, имеющих иерархическую структуру - Очереди/подочереди?
5. Или исходя из мануала пользоваться их ID`ами? Визуально - плохо читаемо, но меньше вероятность синтаксических ошибок.
:oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: Использование ACL

Сообщение yuri0001 » 09 фев 2012, 18:36

Всем все понятно? Я один такой глупый? :oops:
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

spool
OTRS Новобранец
Сообщения: 49
Зарегистрирован: 23 янв 2012, 13:23
Откуда: р. Татарстан, г. Елабуга

Re: Использование ACL

Сообщение spool » 10 фев 2012, 09:12

пока не добрался до таких глубин))
С уважением, Шакирзянов Ренат |системный администратор| г. Елабуга

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

Re: Использование ACL

Сообщение alexus » 10 фев 2012, 14:34

1. Да
2. Да, надо только decode_utf8() использовать

Код: Выделить всё

	    use Encode;

    $Self->{TicketAcl}->{'ACL-Customer-Queues'} = {
        Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
        Possible => {
            Ticket => {
  
               Queue => [decode_utf8('миск') , 'Raw'],

            },
        },    
    }; 
3. Что есть - то есть. Нам пока хватает.
С уважением,
Алексей Юсов

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? Спросите меня как!

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 10 фев 2012, 14:55

Спасибо, большое!
Если не секрет, в строке

Код: Выделить всё

 Queue => [decode_utf8('миск') , 'Raw'],
- 'миск' - что означает? :oops:
Счмитаете, что в 4 и 5 вопросах ответы очевидны?
Последний раз редактировалось ykolesnikov 10 фев 2012, 14:56, всего редактировалось 1 раз.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

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

Re: Использование ACL

Сообщение alexus » 10 фев 2012, 14:56

Это транслит от "Misc" для тестов :). Т.е. имя очереди.
С уважением,
Алексей Юсов

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? Спросите меня как!

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 10 фев 2012, 14:59

Теперь понял, спасибо!
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

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

Re: Использование ACL

Сообщение alexus » 10 фев 2012, 15:38

Кстати вот http://doc.otrs.org/3.1/en/html/ch18s03.html. Тут вроде более подробно, чем для 3.0!
С уважением,
Алексей Юсов

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? Спросите меня как!

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: Использование ACL

Сообщение yuri0001 » 10 фев 2012, 16:54

Спасибо, почитаю. :)
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

bloodice
OTRS Новобранец
Сообщения: 120
Зарегистрирован: 24 ноя 2010, 06:48

Re: Использование ACL

Сообщение bloodice » 13 фев 2012, 06:42

В ACL еще регулярки можно использовать. '[RegExp](тест)'
OTRS 4.0.12, ITSM 4.0.12 тестовая

bloodice
OTRS Новобранец
Сообщения: 120
Зарегистрирован: 24 ноя 2010, 06:48

Re: Использование ACL

Сообщение bloodice » 13 фев 2012, 07:42

Кстати не знал, что на данные клиента можно ACL повесить.
Меня такой нюанс интересует. Можно ли сделать так, что бы ACL срабатывал в зависимости от того, какого клиента выбрал агент?
OTRS 4.0.12, ITSM 4.0.12 тестовая

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 13 фев 2012, 07:53

Это зависит от ответа на мой первый вопрос при открытии поста. Надо понимать механизм работы ACL, т.е. если он "висит" над всеми процессами как обработчик всех событий при вводе и, если есть события которые он должен обрабатывать, то делает это - то, наверное можно реализовать Вашу идею.
У меня, такого полного понимания всего этого нет. Некоторые вещи делаем по аналогии с описанным - как заяц в цирке на барабане играет - он не понимает, что играет на барабане, но научили - делает. :oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 11 мар 2012, 14:12

Подскажите, пожалуйста,

1) в чем разница между заданием, в Properties или Possible

DynamicField => {
DynamicField_Field1 => ['some value'],
},

и
Ticket => {
DynamicField_Field1 => ['some value'],
}

2) можно ли и как при задании Possible использовать ключи динамических полей, а не значения?

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 14 мар 2012, 14:33

Исходя из комментариев к примерам по ACL выходит, что Ticket в Properties используется, когда заявка уже создана, иначе используется прямо имя поля или очереди или сервиса и т.д. Я так это понял. :oops:
Насчет ключей динамических полей, опять же исходя из мануала http://doc.otrs.org/3.1/en/html/ch18s03.html - то там их нет и для чего они вообще - непонятно, возможно при программировании они используются - в настройках их нет нигде кроме как при создании самих полей.
Более того, сейчас копался в .dtl файле формирования заявки клиентом. Там при выводе динамических полей по отдельности - закомментированный кусок текста в конце, используется имя динамического поля в комментарии начала блока кода, а код для всех полей одинаковый. Программеры в шоке! :roll:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 15 мар 2012, 14:27

Юрий,

спасибо за помощь, пункт 1 благодаря Вам прояснился )

Что касается ключей динамических полей - в ACL именно ключи используются в Properties, а вот в Possible - уже значения...
Проверено на себе ) Пришлось создать очередной "костыль" (

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: Использование ACL

Сообщение yuri0001 » 15 мар 2012, 19:02

Добрый вечер!
И Вам спасибо большое. С динамическими полями в ACL, действительно при использовании имен ключей в Properties - работает!!! :D
Будем дальше осваивать ACL. К сожалению, совсем дуб в регулярных выражениях, а они очень бы здесь пригодились, иначе писать придется много. :cry:
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 19 мар 2012, 15:49

Если у кого есть опыт в ACL - проясните:
Задача - ограничить для клиента ввод типа заявки - например, только "Incidend", "Incident::Disaster", "RfC".
Для агента оставить все типы в телефонной заявке.
В примерах и Reference в документации явно в возможных Possible - Type не присутствует, только в Properties.
Кроме того как указать, что ACL относится только к Customer Actions?
:oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 20 мар 2012, 12:49

На последний вопрос нашел ответ в нашем форуме, сам спрашивал, но тогда чисто теоретически, теперь реально понадобилось
viewtopic.php?f=2&t=427&start=10

Код: Выделить всё

    # ------------------------------------------------------------------- #
    # Настройка видимости очередей при создании заявки клиентом через WEB #
    # ------------------------------------------------------------------- #
    use utf8;
    $Self->{TicketAcl}->{'ACL-Customer-Queues'} = {
        Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
        Possible => {
            # possible ticket options (white list)
            Ticket => {
                Queue => ['First Line Support', 'Общая'],    # Показываем только указанную очередь
            },
        },
    };
Главное именно в этом - действие только для клиентов

Код: Выделить всё

$Self->{TicketAcl}->{'ACL-Customer-Queues'} = {
        Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
Но вот с TYPE вопрос висит по-прежнему
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 20 мар 2012, 15:09

Юрий,

$Self->{TicketAcl}->{'MyTest'} = {
Properties => {
Frontend => {
Action => ['CustomerTicketMessage'],
},
},
Possible => {
Ticket => {
Type => ['Incident'],
},
},
}

Работает. Или я не правильно поняла Ваш вопрос?

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 20 мар 2012, 15:50

Спасибо, Анна, заработало!
Моя ошибка была в том, что я использовал конструкцию как в Properties - Type => { Name =>...

НО!
В списке только одно значение из

Код: Выделить всё

               Type => ['Incident', 'Rfc'], 
- Incident.
Здесь какое-то ограничение? Или я опять с синтаксисом или грамматикой накосячил?

И еще вопрос, если позволите
С двумя последующими ACL для динамических полей - наблюдается разница в работе для клиента и агента
Для клиента работает отлично, а для агента - во второе (зависимое) поле сразу подставляется первое допустимое значение из списка - вместо прочерка как у клиента и что более правильно. :?:
Текст ACL

Код: Выделить всё

    $Self->{TicketAcl}->{'490 ACL-Customer-Types'} = {
        Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
        Possible => {
            Ticket => {
                Type => ['Incident', 'Rfc'], 
            },
        },
    };
    $Self->{TicketAcl}->{'500 - Category --> ProjectName_1'} = {
    Properties => {
	    DynamicField => {
            # keys must be in DynamicField_<field_name> format
           DynamicField_CategoryName  => ['015'],
           },
		},   
    Possible => {
        Ticket => {
            DynamicField_ProjectName  => ['02 Cartrige', '04 DrumUnit'],
           },
        },    
	};
    $Self->{TicketAcl}->{'510 - Category --> ProjectName_2'} = {
    Properties => {
	    DynamicField => {
            # keys must be in DynamicField_<field_name> format
           DynamicField_CategoryName  => ['001'],
           },
		},   
    Possible => {
        Ticket => {
            DynamicField_ProjectName  => ['01 Toner', '03 Fuser'],
           },
        },    
	};
:oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 20 мар 2012, 16:06

Мой ГЛЮК :shock:
Вместо RfC написал Rfc
Еще раз большое спасибо за помощь!!!
:)
А с разницей у агентов и клиентов при общем ACL так и непонятно. (подробности в предыдущем сообщении)
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 20 мар 2012, 16:11

Юрий,

1) по поводу типов - в названии типа RfC C - заглавная. Если задать
$Self->{TicketAcl}->{'MyTest'} = {
Properties => {
Frontend => {
Action => ['CustomerTicketMessage'],
},
},
Possible => {
Ticket => {
Type => ['Incident','RfC'],
},
},
}

то все успешно работает

2) у Вас указана опция Add empty value для этих динамических полей?

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 20 мар 2012, 16:16

У меня add empty value не указано, и в агентском и клиентском интерфейсах ACL отрабатывают одинаково - выбирается первое значение из списка.

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Использование ACL

Сообщение ykolesnikov » 20 мар 2012, 16:18

Да указана, и у клиента все отлично, а у агента подставляется первое из допустимых сразу. Потом его можно поменять, но кривовато это. Динамические поля перенесены верхнюю часть формы и выводятся по отдельности и у клиентов и у агентов, но проверял и без этих изменений, работает также.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Anna
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 11 мар 2012, 14:06

Re: Использование ACL

Сообщение Anna » 20 мар 2012, 16:49

У меня тоже возникла разница между работой одного и того же ACL в разных интерфейсах:

$Self->{TicketAcl}->{'Service-Product-005'} = {
Properties => {
Service => {
ServiceID => [5],
},
},
Possible => {
Ticket => {
DynamicField_Product => ['Third-party products'],
},
},
}

прекрасно работает в клиентском интерфейсе и вообще не работает в агентском (заявка по телефону).
Тоже никак не могу понять, почему (

Ответить