Портал самообслуживания (Self Service Portal, SSP) является неотъемлемой функциональной частью продуктов Service Creatio, enterprise edition, Service Creatio, customer center edition, а также всех производных пакетов (bundle) продуктов, в которые они входят.
Портал представляет собой отдельное рабочее место (Workplace), в которое автоматически попадает пользователь портала при входе через стандартное окно авторизации приложения.
По умолчанию в поставляемом продукте портальному пользователю доступно два раздела — [ Обращения портала ] и [ База знаний ], а также [ Главная страница портала ], которая содержит общую сводную информацию и выполняет роль единого рабочего места пользователя портала.
Раздел [ Обращения портала ] служит для самостоятельной регистрации обращений пользователем, просмотра статуса своих обращений, внесения дополнительной информации по обращению, а также для получения информации по решению своего обращения. По умолчанию портальный пользователь имеет доступ только к тем обращениям, в которых он указан в качестве контакта. На странице обращения пользователь может внести дополнительную информацию, публиковать сообщения, вести переписку по своему обращению с сотрудниками службы поддержки. История переписки по обращению отображается на странице обращения на вкладке [ Обработка ].
Раздел [ База знаний ] служит для самостоятельного поиска пользователем справочной информации или решения по своему вопросу. Данный раздел по умолчанию может наполняться только сотрудниками поддержки из основного интерфейса системы.
Устройство портала
С точки зрения разработки, портал является преднастроенным отдельным рабочим местом. Это рабочее место по умолчанию недоступно обычным пользователям приложения. Пользователь системы с типом "Пользователь портала" при авторизации автоматически попадает в данное рабочее место, а именно на Главную страницу портала.
Разделы и страницы портала — это обыкновенные разделы и страницы записи, и работают с теми же сущностями (Entity), что и страницы, доступные в основном интерфейсе системы. В частности, страница обращения на портале имеет более простой вид, и не содержит большинства полей. В конфигурации это две разные страницы записи — CasePage и PortalCasePage.
Система прав доступа на портале имеет только одно небольшое отличие. Чтобы дать портальным пользователям доступ к определенным сущностям (EntitySchema), необходимо дополнительно указать эти сущности в справочнике [ Список объектов доступных портальному пользователю ]. Лицензии портала самообслуживания ограничивают количество записей, которое может быть добавлено в данный справочник. По умолчанию это 70 записей.
Работа с мастером страниц на портале
Портальному пользователю недоступна функциональность мастеров страниц, деталей и разделов. Эта функциональность может быть вызвана пользователем с правами администратора из основного интерфейса системы следующим образом:
- Перейти в раздел [ Настройка рабочих мест ] дизайнера системы.
- Выбрать рабочее место [ Портал ] и нажать [ Открыть ].
- Выбрать требуемый раздел и нажать кнопку [ Настройка раздела ].
После этого откроется стандартный мастер разделов.
Настройка портала и портальных пользователей
Для того чтобы начать пользоваться порталом, необходимо выполнить следующие действия:
- Убедиться, что в файле web.config загрузчика приложения (т. н. "внешний" web.config) опция /configuration/terrasoft/auth имеет следующий вид.
- Создать контакт для пользователя.
- Создать пользователя с типом "Пользователь портала". Заполнить необходимые поля.
- Раздать необходимые лицензии пользователю.
У портального пользователя в профиле должен быть указан корректный часовой пояс. По умолчанию у нового пользователя он не указан. Настройка выполняется самим пользователем портала в его профиле. Отталкиваясь от этого значения, в системе будут отображаться все даты и время.
Ограничение доступа к веб-сервисам для пользователей портала
Основной сценарий использования портала — предоставить доступ большому количеству внешних по отношению к организации пользователей к ограниченному количеству данных из системы. Для решения таких задач возникает потребность управлять тем, какие пользователи (портальные или пользователи компании) имеют доступ к веб-сервисам приложения.
Префиксы маршрутов конфигурационных веб-сервисов
Для управления доступом к веб-сервисам приложения в Creatio реализован механизм префиксов маршрута. Используя определеннные ServiceRoute атрибуты класса сервиса, можно задать необходимый префикс маршрута.
Доступ | Атрибут | Префикс маршрута | Пример кода |
---|---|---|---|
Только для пользователей Портала самообслуживания | SspServiceRoute | /ssp |
|
Только для внутренних пользователей |
DefaultServiceRoute или не указывать ни один ServiceRoute атрибут |
отсутствует |
или |
И для внутренних пользователей, и для Портала |
одновременно атрибуты DefaultServiceRoute и SspServiceRoute |
/ssp или отсутствует |
|
атрибут ServiceRoute с указанием префикса (например, "custom") ServiceRoute("custom") |
произвольный префикс маршрута сервиса |
|
Ограничение доступа портальных пользователей к внутреннему API
Если пользователь портала (SspUserConnection) обратится к сервису по маршруту без префикса “/ssp”, сервис вернет в ответ страницу с кодом 403 (Forbidden).
Ограничение доступа внутренних пользователей к портальному API
Если внутренний пользователь приложения (UserConnection) обратится к сервису по маршруту с префиксом “/ssp”, сервис вернет в ответ страницу с кодом 403 Forbidden.
ServiceStack сервисы ядра
Методы сервисов ServiceStack ядра (DataService, ManagerService и другие) по умолчанию доступны только для внутренних пользователей.
Для того, чтобы какой-то из методов был доступен также и на Портале, необходимо пометить такой метод атрибутом SspServiceAccess - в этом случае метод будет иметь дополнительный маршрут с префиксом вида ~/DataService/ssp/…
Если нужно, чтобы логика метода отличалась для Портала, необходимо создать новый сервис, указав для него атрибут SspServiceAccess, в конструктор которого передать имя оригинального метода. Например:
создает контракт, метод которого будет зарегистрирован по пути ~/DataService/ssp/SelectQuery.
Доступ к методам ServiceStack с префиксом “ssp” запрещен внутренним пользователям, а к методам ServiceStack без префикса “ssp” - пользователям портала.
В приложении существует набор базовых сервисов, доступ к которым есть только у внутренних пользователей.
Для изменения доступа к базовому сервису необходимо:
- В пользовательском пакете создать сервис с настройкой доступа для портальных пользователей.
- Добавить для него те методы базового сервиса, которые должны быть доступны для портальных пользователей.
- Изменить пользовательские или расширить базовые клиентские схемы, изменив вызов базового сервиса на вызов созданного сервиса (см. шаг 1).
- Скомпилировать конфигурацию.
Реализация примера
Пример исходного кода сервиса, который расширяет доступ к базовому сервису ActivityUtilService представлен ниже.
Миксин — это класс-примесь, предназначенный для расширения функциональности других классов. Это отдельно созданные классы с дополнительной функциональностью.
Миксин PortalMessagePublisherExtensions предназначен для расширения схемы SectionActionsDashboard и ее наследников. Он позволяет расширить конфигурацию вкладок SectionActionsDashboard вкладкой портальных сообщений PortalMessageTab и добавить соответствующий канал сообщений Portal. Миксин реализован в пакете PortalMessagePublisher и доступен в продукте ServiceEnterprise, а также в бандлах, в которые входит этот продукт.
Методы
Расширяет конфигурацию вкладок SectionActionsDashboard вкладкой портальных сообщений PortalMessageTab.
Возвращает дополненный объект (Object) конфигурации вкладок SectionActionsDashboard.
config (Object) | Объект конфигурации вкладок SectionActionsDashboard. |
Добавляет портальный канал (Portal) в коллекцию издателей сообщений.
Возвращает дополненную коллекцию издателей сообщений (Array).
publishers (Array) | Коллекция издателей сообщений. |