Отображение "Default Service" для всех клиентов

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
POS_troi
OTRS Новобранец
Сообщения: 15
Зарегистрирован: 07 мар 2018, 15:36

Отображение "Default Service" для всех клиентов

Сообщение POS_troi » 13 мар 2018, 17:00

Не нашел с ходу решения проблемы, пришлось решить самому :)

На примере: OTRS 6.0.5

Проблема: Каждому, новому, клиенту отображаются сервисы по умолчанию - до тех пор пока у клиента не определён хотя-бы один сервис, после отображаются только назначенные клиенту сервисы.
Задача: Отображать всем клиентам "сервисы по умолчанию" - вне зависимости от того назначены ли им "персональные" сервисы + назначенный персональный список.

Решение:
1. Скопировать файл: Kernel/System/Service.pm в Custom/Kernel/System/
2. В скопированном файле, в строке 1015 произвести изменение:

Оригинал:

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

elsif ( $Param{CustomerUserLogin} ) {
        $SQL .= " scu.customer_user_login = '$Param{CustomerUserLogin}'";
    }
После изменения:

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

elsif ( $Param{CustomerUserLogin} ) {
        $SQL .= " (scu.customer_user_login = '$Param{CustomerUserLogin}' OR scu.customer_user_login = '<DEFAULT>')";
    }
Патч:

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

--- Kernel/System/Service.pm	2018-03-13 14:35:33.171185187 +0200
+++ Custom/Kernel/System/Service.pm	2018-03-13 14:32:19.000000000 +0200
@@ -1012,7 +1012,7 @@
         $SQL .= " scu.service_id = $Param{ServiceID}";
     }
     elsif ( $Param{CustomerUserLogin} ) {
-        $SQL .= " scu.customer_user_login = '$Param{CustomerUserLogin}'";
+        $SQL .= " (scu.customer_user_login = '$Param{CustomerUserLogin}' OR scu.customer_user_login = '<DEFAULT>')";
     }
 
     $DBObject->Prepare( SQL => $SQL );
OTRS 6.0.6
OS: CentOS7 + Docker

Ответить