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

    Третья часть статьи по установки и настройке 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
    И стираем всё что там есть, жмём «Отправить» внизу страницы и вуаля, всё работает так так и должно и заявка в мобильном приложении открывается с подробностями и никаких ошибок.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 0

    Only users with full accounts can post comments. Log in, please.