Как стать автором
Обновить

OTRS 4.0.10. Ставим на Ubuntu + AD + Kerberos + SSO (Часть третья)

Время на прочтение 4 мин
Количество просмотров 15K
Третья часть статьи по установки и настройке OTRS на UbuntuServer в среде MS AD. Теперь поговорим об исправлениях различных косяков и прикручивании полезных плюшек. Первые две статьи более меняться не будут, а все остальны мои наработки будут дописываться в эту статью, получится такой неплохой howto.

Часть первая: подготовка системы
Часть вторая: установка и настройка OTRS
Часть третья: исправляем косяки прикручиваем плюшки



Исправляем косяки локализации


В интерфейсе кустомера есть косячёк, на кнопке выхода вместо имени пользователя красуется %c %c, тоесть как-то так «Выход из системы %с %с». Исправляется это очень легко. Открываем файл /opt/otrs/Kernel/Language/ru.pm:
mcedit /opt/otrs/Kernel/Language/ru.pm

Находим строку «%c %c» (обратите внимание символу русские), если не получится, то номер строки 3070, и меняем «%c %c» на «%s %s». Сохраняем и всё ок.

Приятная плюшка №1. Модуль FAQ.


Думаю не стоит объяснять на сколько это полезный модуль в такой системе.
Для кустомеров сюда можно внести всяческие инструкции и ответы на часто задаваемые вопросы, а для агентов некое подобие базы знаний с напоминалками. короче всё что угодно на ваш выбор. Ставится эта плюшка прощще некуда.
Переходим на сайт OTRS в раздел публичных закачек
Выбираем Public Extensions -> OTRS 4 -> FAQ и качаем пакет с нашим модулем.
Заходим в админку OTRS -> Администрирование системы -> Управление пакетами.
Жмем кнопку «Обзор» и выбираем файл только что скачанного пакета, жмём установить.

Может выскочить ошибка:


Исправляется это правкой файла /etc/otrs/Kernel/Config.pm
находим в нем параметр SecureMode и изменяем его значение на 1, если такого нет, то дописываем вручную как на картинке


Вот собственно и всё, как добавлять статьи и раздавать на них доступ рассказывать не буду, тут вариантов нет и всё делается единственным способом информации по которому в сети валом.

Приятная плюшка №2. Модуль iPhoneHandle.


Что это за зверь такой, а зверь этот позволяет прикрутить к OTRS мобильные устройства агентов и работать с системой прямо с них, получать заявки, отвечать на них и закрывать прямо в телефоне, бесценная плюшка для санатория со 100% покрытием вафлей и огромным шататом сантихников, электриков и прочих инженеров.
В документации по OTRS говориться (да и из названия это тоже понятно) что модуль этот написан для iPhone и официальный клиент есть только под iPhone.
Но как оказалось сторонние умельцы уже давно распарсили протокол и понаписали клиентов для других платформ. Да и согласитесь было бы страно если бы сантехник носил при себе iPhone в кармане спецовки. Под андроид их даже два, на выбор, это DSHelpdesk (есть платная версия этого приложения) и просто Help desk.
И так, ставим модуль.
Качаем его всё с того же места что и предыдущий (повторно ссылку давать не буду).
Выбираем на последнем этапе соответсвующий модуль, ставим его аналогичнм способом что и предыдущий модуль. Поле установки в папке /opt/otrs/bin/cgi-bin/ должен появится файл json.pl, если появислся, значит всё ок, модуль встал удачно.

Далее ставим понравившееся приложение и перечисленных выше и пробуем зацепиться к серверу OTRS иииии (если вы делали настройку по моим инструкциям) не тут-то было, сразу всё не прокатит. А всё потому что модуль json.pl не дружит ни с какой авторизацией кроме авторизаци из DB самого OTRS. Поэтому топаем в /opt/otrs/Kernel/Config.pm и сразу же после блока авторизации AD добавляем ещё один бэк-энд блок авторизации в DB.
Выглядить это должно вот так:

# Указываем фильтр и параметры подключения к LDAP#
$Self->{'AuthModule::LDAP::AlwaysFilter'} = ''; 
$Self->{'AuthModule::LDAP::Params'} = { 
port => 389, 
timeout => 120, 
async => 0, 
version => 3, 
sscope => 'sub' 
}; 

# Конец настроек LDAP аутентификации для Агентов #

# Настройка второго бек-энда для авторизации мобильных клиентов #
$Self->{'AuthModule1'}='Kernel::System::Auth::DB';


# Настройка модуля синхронизации Агентов с LDAP #
# Синхронизируем базу агентов с LDAP # 
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP'; 


Что бы было понятнее, мы вставили вот такие строчки:

# Настройка второго бек-энда для авторизации мобильных клиентов #
$Self->{'AuthModule1'}='Kernel::System::Auth::DB';


Попробуем зацепиться иииии, снова никак, а если вы выбрали для мобильно устройства DSHelpdesk, программа ещё и схлопнеться с ошибкой.
Трабла в том, что мобильный клиент не понимает что-такое Kerberos-авторизация, а Apache2 доблестно требует авторизоваться при попытках достпа к каталогу /opt/otrs/bin/cgi-bin и к файлу json.pl в том числе. Поэтому надо объяснить апачу что для достпа к этому файлу авторизация не обязательна, а для этого придётся подредактировать файл настроек виртуального хоста /etc/apache2/sites-enabled/otrs.conf и добавить в него ещё один маленький блок

    <Location /otrs/json.pl>
    ErrorDocument 403 /otrs/json.pl
    SetHandler  perl-script
    PerlResponseHandler ModPerl::Registry
    Options +ExecCGI
    PerlOptions +ParseHeaders
    PerlOptions +SetupEnv
    Require all granted
    Satisfy Any
    </Location>


Я добавил сразу же после первого блока Location сразу же после тега
</Location>


Теперь привычные уже

service apache2 reload
service apache2 restart


И пробуем авторизоваться из мобильного клиента снова, и если вы всё сделали правильно, то авторизация пройдет успешно и мы увидим заявки отсортированные по папкам в соответствии со статусами.

Исправляем косяки

Модуль отлично работает, приложение цепляется, заявки видим, но вот проблема, при попытке открыть детали заявки, приложение либо выкидывает ошибку и ничего не открывает либо вообще схлопывается. А содержание той ошибки типа такого:
«No access method 'TicketFlagSet()' from 'TicketObject'»
Долго рылся в поисках ответа, пока не прочитал внимательно описание одного из приложений прямо в Play-Market-е.
Оказалось решается это просто. Идём в админку OTRS: Администрирование системы -> Конфигурация системы -> в выпадающем меню выбираем iPhoneHandle -> API
Находим параметр
iPhone::API::Object###TicketObject
И стираем всё что там есть, жмём «Отправить» внизу страницы и вуаля, всё работает так так и должно и заявка в мобильном приложении открывается с подробностями и никаких ошибок.
Теги:
Хабы:
+6
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн