Как запретить менять владельца определенному агенту

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

Модератор: ykolesnikov

Ответить
HarD
OTRS Новобранец
Сообщения: 2
Зарегистрирован: 17 апр 2013, 22:20

Как запретить менять владельца определенному агенту

Сообщение HarD » 17 апр 2013, 22:33

Здравствуйте

Подскажите если такой возможно.

1) Как скрыть некоторым агентам - кнопку Владелец
2) Как запретить определенным агентам в очереди менять владельца заявки (но должна быть возможность у остальных возможность указывать их как владельцы).
3) Как запретить определенным агентам в очереди менять владельца заявки на определенного агента (но должна быть возможность у того на кого нельзя поставить владельца, выбирать остальных в качестве владельцев).

Вот парочка, в порядке значимости...самое интересное это 3 пункт.

Буду рад любым советам.

Как вариант - засунуть всех агентов в свои очереди и группы..., но хотелось бы, чтобы агенты были в одной очереди...

HarD
OTRS Новобранец
Сообщения: 2
Зарегистрирован: 17 апр 2013, 22:20

Re: Как запретить менять владельца определенному агенту

Сообщение HarD » 17 апр 2013, 23:49

UPDATE:

Для первого пункта вроде нашел рабочее решение
1) SysConfig in Ticket -> Frontend::Agent::Ticket::MenuModule
2) Добавить для Ticket::Frontend::MenuModule###400-Owner поле
3) Ввести Group
4) И ввести в содержание права определенной группе, например - rw:admin

Creative
OTRS Новобранец
Сообщения: 132
Зарегистрирован: 22 июн 2011, 14:33
Откуда: Татарстан, Альметьевск

Re: Как запретить менять владельца определенному агенту

Сообщение Creative » 18 апр 2013, 07:26

По всем задачам вариант один.

Создавать дополнительные группы для управления правами.
Право на доступ к действию реализовывать так как сделано для первого пункта, через конфиги управления меню.
Право на управление владельцами и движением по очередям реализовывать через доступ к правам на уровне групп (возможно более разумным будет также задействовать механизм ролей)
Доступ на уровне ролей работает по модели суммирования выданных прав по всем назначенным агенту ролям. Для групп в которых у агента нет права "read/write" действует правило "запрещено всё, что явно не разрешено". Право "read/write" по умолчанию перекрывает действие всех остальных.

К примеру, чтобы дать возможность назначать владельца из "чужой" группы, должно быть достаточно дать права "ro" и "owner" на эту группу.
Конкретные решения требуют проверки.
Можно также создавать свои виды прав и привязывать их к модулям действий.
Механизмы прав можно расширять бесконечно, особенно с применением хардкодинга.
Та модель которая реализована в стандартной поставке, является лишь базовым примером охватывающим наиболее распространённые случаи.
Мозг человека обычно загружен лишь на 10% своей мощности, остальное - резерв для операционной системы.

OTRS 3.1.4; ITSM 3.1.6; Ubuntu Server 12.04 LTS
Андрей Ананьев

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

Re: Как запретить менять владельца определенному агенту

Сообщение alexus » 18 апр 2013, 21:34

Есть и вариант ДВА!

Это - ACL. Используя роли или группы, или отдельных агентов можно делать с активацией элементов интерфейса что угодно.

http://doc.otrs.org/3.2/en/html/customization.html#acl

Вот пример оттуда, но с добавкой про Роль

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

$Self->{TicketAcl}->{'101-Second-Example-ACL'} = {
    # match properties
    Properties => {
        # current ticket match properties
        Ticket => {
            Queue => ['Raw'],
        }
		User => {
                Role => [
                   'Specialist_1st_Line',
				],
            },
    },
    # return possible options (white list)
    Possible => {
        # possible ticket options (white list)
        Ticket => {
            State => ['new', 'open', 'pending reminder'],
        },
        # possible action options
        Action => {
            AgentTicketBounce        => 1,
            AgentTicketClose         => 0,
            AgentTicketCompose       => 1,
            AgentTicketCustomer      => 1,
            AgentTicketForward       => 1,
            AgentTicketFreeText      => 1,
            AgentTicketHistory       => 1,
            AgentTicketLink          => 1,
            AgentTicketLock          => 1,
            AgentTicketMerge         => 1,
            AgentTicketMove          => 1,
            AgentTicketNote          => 1,
            AgentTicketOwner         => 1,
            AgentTicketPending       => 1,
            AgentTicketPhone         => 1, # only used to hide the Split action
            AgentTicketPhoneInbound  => 1,
            AgentTicketPhoneOutbound => 1,
            AgentTicketPrint         => 1,
            AgentTicketPriority      => 1,
            AgentTicketResponsible   => 1,
            AgentTicketWatcher       => 1,
            AgentTicketZoom          => 1,
            AgentLinkObject          => 1, # only used to hide the Link action
        },
    },
};
С уважением,
Алексей Юсов

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

Ответить