Портал самообслуживания (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) | Коллекция издателей сообщений. |