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

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

Модератор: ykolesnikov

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

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

Сообщение ykolesnikov » 11 май 2012, 12:06

Добрый день!
Для начала, посмотрите, у Вас точно клиенты второй группы не являются членами первой?
Может я и не прав, но попробуйте провести такой опыт. :oops: По идее, система должна просматривать ACL последовательно, один за другим и Ваша схема должна работать. Проверьте еще синтаксис очень внимательно, иногда, при мелких синтаксических ошибках, сообщений не выдается, но и правило не работает.
Если хардкодить, то, наверное, в этом же модуле CustomerTicketMessage.dtl (или - .pm)
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 11 май 2012, 12:39

Дело в том, что клиенты второй группы точно являются и членами первой.
Первая группа - "users" - группа клиентов по умолчанию, все клиенты - члены этой группы. Но, некоторые и группы "users-dev". Как бы VIPы (технические такие VIPы). Я, просто хочу разобраться, мне потом понадобится реализовать еще функционал, связанный с разграничением прав пользователей. Через группы делать - самое логичное.

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

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

Сообщение ykolesnikov » 11 май 2012, 14:11

Цель ясна и понятна. Вопрос понять глубже как работает ACL. Если разделить четко по группам без пересечений, и при этом Ваш ACL заработает - это одно решение, если не поможет - надо копать дальше, почему не работает.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 11 май 2012, 14:24

Дело в том, что хочется автоматизировать (максимально) процессы управления пользователями. Без пересечений групп - работает. Но, система позволяет привязывать пользователя к нескольким группам, соответственно, какая-то логика работы ACL должна быть, при пересечении групп. Сейчас же - совсем неясно, как быть. Если не устанавливать группу по умолчанию, то новый пользователь не привязан ни к какой группе, что неправильно. Если установить, то при привязке к специальной группе - происходит пересечение и ACL работает непонятно, при этом, я не могу отвязать клиента от дефолтной группы.

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 11 май 2012, 14:30

Я так подозреваю, что в то же ограничение упрется попытка ограничить пользователей в возможности просмотра заявок компании (это могут делать только пользователи с определенной привилегией), да и ограничение на просмотр той или иной очереди...
Есть подозрение, что все эти проверки ACL происходят в одном месте, но я, пока, не смог найти где. Нужна помощь уважаемого сообщества! :-)
Ну, или какое-либо альтернативное решение.

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

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

Сообщение ykolesnikov » 11 май 2012, 14:41

Как вариант, это конечно, не решение Вашего вопроса - пусть выбирают любой тип, а Вы фильтруйте (ACL) - заявки от тех, кому не положено в отдельную очередь и к ней автоответ - "Вас тут не стояло"
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 11 май 2012, 15:04

Я хочу на основе типа заявки кидать их в отдельную очередь, с ограничением доступа и к ней, все это при создании самой заявки. Да, еще, как на основе ACL фильтровать? ACL работает странно, в некоторых случаях включались разрешения для "users-dev" для всех клиентов. Автоотвечать клиентам тоже не хочется, каждое обращение - деньги, нужно правильно обработать.

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

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

Сообщение yuri0001 » 11 май 2012, 15:53

Да, еще, как на основе ACL фильтровать
Если тип заявки Development, а группа не "user-dev"
Ну а насчет денег, то не все можно автоматизировать, хотелось бы, но чудес не бывает. Автоматизация ведь не бесплатная. OTRS хоть и бесплатный продукт, но сколько времени и зарплаты Вашей и Ваших сотрудников уйдет на кастомизацию?
Есть еще и регламенты. Надо прописать в договоре, какие категории клиентов могут заявлять нечто большее, чем инцидент. Кроме того, заявки на разработку попадают в понятие Управления Изменениями и там могут быть другие регламенты по их приему. Вариантов организации процессов множество и не все можно автоматизировать даже в "больших" системах.
Удачи Вам в поисках.
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 11 май 2012, 15:59

Да, дело в том, что вопрос касается не чего-то космического. Группы пользователей и права доступа - основа управления хаосом :-)
Кстати, как в ACL указать - "Не принадлежит к группе"?
Заранее спасибо!

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

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

Сообщение yuri0001 » 11 май 2012, 17:12

Группы пользователей и права доступа - основа управления хаосом
Для агентов все сделано достаточно полно, что касается клиентов, то их надо "строить" (не гноить :D )
Я не силен в регулярных выражениях, но их там, точно, можно использовать, и во вторых в мануале есть пример с Possible Not - посмотрите, может прокатит. Больше, к сожалению, ничем помочь не могу. :oops:
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 14 май 2012, 02:10

Разобрался, нужно было добавить StopAfterMatch => 1, в ACL для "users-dev"

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

$Self->{TicketAcl}->{'ACL-Customer-Ticket-Std'} = {
   Properties => {
      Frontend => {
         Action => ['CustomerTicketMessage'],
         },
      CustomerUser => {
            # ...
            Group_rw => [
                'users',
            ],
            # ...
        },
   },
   Possible => {
      Ticket => {
         Type => ['Incident'],
      },
   },
   
};

$Self->{TicketAcl}->{'ACL-Customer-Ticket-Dev'} = {
   StopAfterMatch => 1,
   Properties => {
      Frontend => {
         Action => ['CustomerTicketMessage'],
         },
      CustomerUser => {
            # ...
            Group_rw => [
                'users-dev',
            ],
        },
   },

   Possible => {
      Ticket => {
         Type => ['Incident','Development'],
      },
   },
};
Тогда, ACL Останавливается на группе "users-dev". Вроде, все работает корректно.

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

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

Сообщение yuri0001 » 14 май 2012, 04:31

Интересный параметр. :idea:
Спасибо, что написали, будем знать. :o
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 14 май 2012, 13:20

Пришлось настроить среду разработки под Perl и отладчиком пройтись.
Мне не очень понравилось, как там ACL реализован. Логичнее было бы сделать так: Если, при пересечении правил какой-то параметр разрешен в любом правиле, он разрешен в итоге, если явно запрещен - запрещен в итоге. Тогда, действительно, можно сложные цепочки правил строить.
Вообще, просмотрев код возникли вопросы насчет квалификации программеров и архитекторов системы. Что-то доработать под себя - использовать можно. Для серьезных переработок (и настроек под себя) - проект не очень годится.

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

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

Сообщение Anna » 17 май 2012, 12:47

Ext,

про переработку обоснуйте )
Активно перерабатываем и используем "под себя" аж с 2007 года.

А вот насчет квалификации программистов - в версии OTRS 3 и выше, пожалуй, соглашусь...

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

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

Сообщение alexus » 17 май 2012, 13:57

Ext писал(а):Вообще, просмотрев код возникли вопросы насчет квалификации программеров и архитекторов системы. Что-то доработать под себя - использовать можно. Для серьезных переработок (и настроек под себя) - проект не очень годится.
Примеры - студию! Отправим в головную компанию с пожеланиями ;)
С уважением,
Алексей Юсов

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

Ext
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 11 май 2012, 10:57

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

Сообщение Ext » 19 май 2012, 12:47

Несколько, навскидку.
1. Работа того же ACL, я писал выше.
2. Обращение к разным сущностям системы по имени (хотя логичней было бы ввести понятие ключ - и обращаться по ключу, имя сейчас одно, завтра другое, а ключ можно сделать недоступным для редактирования через админ. интерфейс). Это вообще-то азы, там не надо в головную компанию писать, надо их отправлять учиться, в ВУЗ какой-нибудь.
3. Запутанная система сущностей, в принципе. Почему - то группы клиентов и группы агентов относятся к одному типу. Сущность "Компания" прилеплена с какого-то боку (видимо, в свое время для галочки).
4. При настройке надо вводить названия сущностей, в необходимые поля, хотя ничто не мешает сделать "источник" и вводить ссылку на сущность через выбор, одинарный или множественный.
5. Работа с БД - напрямую, в коде SQL запросы, не через нормальный адаптер. (Заодно, разработчиков отправить на курсы, пусть объяснят им, что такое шаблоны проектирования).

Это, так, на вскидку.
Результатом всего этого является то, что происходит здесь, на форуме. А именно, при проблеме - пользователю говорится, что он должен бизнес-процесс подстраивать под систему, хотя по большому счету должно быть наоборот. И это логично - система очень не гибкая, в следствие архитектурных недостатков. (Мое ИМХО, исключительно).
Поэтому, я и написал - ее можно использовать, если брать базовый функционал и немного подстраивать под себя. (Что мы и делаем, кстати.) Серьезно перерабатывать под себя - неэффективно, несмотря на статус опенсорс продукта, ну или надо обладать ресурсами mail.ru :-) .

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

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

Сообщение ykolesnikov » 01 июн 2012, 08:26

Всем привет!
Увидел интересную вещь, доступную, начиная с версии 3.1.5 - Example 18.2. в http://doc.otrs.org/3.1/en/html/ch18s02.htm.
Позоляет использовать в ACL значения атрибутов заявок уже имеющихся в OTRS, а не вводимых вновь. :D
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

firebolt
OTRS Новобранец
Сообщения: 178
Зарегистрирован: 13 сен 2012, 13:46

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

Сообщение firebolt » 10 окт 2012, 12:27

Я вижу, здесь ведется активное обсуждение по ACL.

Только начинаю настройку системы под нужды компании, все пока кажется сложным. Я разобрался в принципе работы ACL (чего там разбираться: заявка по параметрам подошла - сделать c ней то и то), но вот c параметрами разобраться не могу. Посмотрел вот эту справку и вот какие вопросы появились... Один из них - откуда мне узнать ID объектов? State ID, Priority ID и т.д. Я понимаю, что хочу сделать простую вещь - настроить,чтобы по истечении времени на выполнение заявка переходила в другую очередь. Понял, что мне нужно использовать что-то наподобие

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

$Self->{TicketAcl}->{'ACL-Name-1'} = {
 # match properties
 Properties => {
 # current ticket match properties
 Ticket => {
  Queue => ['1 линия'],
  State => ['<истекло время решения>'],
 }
 },

 # return possible options (white list)
 Possible => {
 # possible ticket options (white list)
 Ticket => {
  Queue => ['2 линия'],
 },
 },
};
Но где мне взять это состояние заявки? Как его узнать?
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

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

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

Сообщение ykolesnikov » 10 окт 2012, 15:18

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

firebolt
OTRS Новобранец
Сообщения: 178
Зарегистрирован: 13 сен 2012, 13:46

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

Сообщение firebolt » 11 окт 2012, 06:14

ykolesnikov писал(а):Вариант который Вы показываете в сообщении может работать только в случае, если у Вас есть такое имя состояния и кто-то его выставляет в это значение. Я могу ошибаться, но ACL вроде не работает с событиями, а может манипулировать лишь со значениями атрибутов
Но ведь при истечении времени для самой системы эта заявка меняет состояние? Она перестает быть видной для клиента в его открытых заявках. И это получается работа не c событием. Меняется состояние заявки, значит теперь она удовлетворяет условиям и ее нужно обработать. Кстати, в примере она не перемещается. Ее просто можно будет переместить только в конкретную указанную очередь.
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

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

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

Сообщение ykolesnikov » 11 окт 2012, 07:11

Заявка, сама не может сменить состояние. Это может сделать либо агент, либо система с помощью некоего задания (GenericAgent). В задании, инициированном неким событием, Вы можете указать что надо сделать - переместить в другую очередь, сменить состояние и т.д.
"О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель. "
(А.С. Пушкин)

Пробуйте :)
viewtopic.php?f=7&t=555
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

fendibober
OTRS Новобранец
Сообщения: 41
Зарегистрирован: 24 фев 2013, 09:54
Откуда: Омск
Благодарил (а): 3 раза

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

Сообщение fendibober » 06 апр 2013, 19:00

Anna писал(а):У меня add empty value не указано
Подскажите пожалуйста, где её указывать?
OTRS 6.0.2
MySQL
Centos 7

До 3 мая 2020:
OTRS 4
MySQL
Debian GNU/Linux 7.11 (wheezy)

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

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

Сообщение yuri0001 » 06 апр 2013, 20:39

Это указывается при создании динамических полей в АдминКонфиге (Администрирование-->Динамические поля) - опция для полей типа - dropdown
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

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

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

Сообщение bloodice » 03 ноя 2015, 07:30

А как проверить не заданность DynamicFieldDateTime? Или любого другого параметра?
Есть 2 параметра DynamicFieldCheckbox и DynamicFieldDateTime. Нужно сделать что бы при отмеченном DynamicFieldCheckbox и не заданном времени DynamicFieldDateTime отображалась кнопка, во всех остальных случаях кнопка не должна выводиться.
OTRS 4.0.12, ITSM 4.0.12 тестовая

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

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

Сообщение ykolesnikov » 03 ноя 2015, 08:10

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

Ответить