Раздел “Представления”¶
Раздел предназначен для создания, импорта, экспорта, редактирования, отладки и просмотра представлений.
Список представлений находится в левой части раздела и содержит фильтр для поиска по названию.
Над списком представлений располагается панель инструментов, она содержит следующие кнопки:
Кнопки |
Описание |
---|---|
![]() |
Обновить все представления (считать данные из базы) |
![]() |
Создать новое представление |
![]() |
Удалить выбранное представление |
![]() |
Сохранить выбранное представление |
![]() |
Сохранить всё |
![]() |
Импорт представлений |
![]() |
Экспорт представлений |
![]() |
Переход в режим редактирования представления |
![]() |
Переход в режим отладки представления |
![]() |
Переход в режим просмотра представления |
![]() |
Переход на вкладку настроек прав доступа |
Создание и редактирование представления¶
Для создания представления необходимо нажать кнопку на панели инструментов. Затем нужно выбрать добавленное представление, перейти в режим редактирования и задать параметры представления:
Название поля |
Описание |
---|---|
Алиас | Название представления, которое будет отображаться в списке представлений, а также будет использоваться в настройке карточек (в связи с этим алиас не желательно менять в дальнейшем) |
Имя | Имя, которое будет задаваться по умолчанию на рабочих местах пользователей |
Группа | Название группы для логической группировки списка представлений в Tessa Admin |
Описание | Описание представления |
Метаданные | Редактор свойств представления |
MSSQL запрос | Код для формирования запроса, который будет получать данные для представления из базы данных MSSQL |
PostgreSQL запрос | Код для формирования запроса, который будет получать данные для представления из базы данных PostgreSQL |
Также возможна смена режима редактирования метаданных представления с помощью переключателя Редактор JSON . Доступно два типа редакторов: редактор чистого json
и редактор в виде карточки.
После редактирования представления его необходимо сохранить и затем проверить в режиме просмотра.
Чтобы представлением могли пользоваться обычные сотрудники, не входящие в группу администраторов, необходимо также настроить доступ на вкладке Роли.
Tip
Поля MSSQL запрос и PostgreSQL запрос поддерживают сочетание клавиш Ctrl+Space, вызывающее контекстное меню, из которого можно выбрать и вставить в текст шаблоны стандартных грамматических конструкций.
Note
Подробнее о написании представлений в Руководстве разработчика.
Экспорт представлений¶
Для экспорта представления можно воспользоваться кнопкой .
Будет открыт диалог, который содержит следующие настройки:
- Папка - в этом поле необходимо указать путь к папке, в которую надо экспортировать файлы представлений, ее можно выбрать с помощью кнопки
.
- Очистить папку от файлов - если флаг проставлен, то перед экспортом представлений все файлы целевой папки будут удалены. Таким образом, после экспорта папка будет содержать только экспортированные представления.
- Подпапки по имени групп - если флаг проставлен, представления будут экспортироваться в подпапки, имена которых соответствуют названиям групп, в которые входят представления. Если имя группы не задано, оно будет экспортировано в корень.
В диалоге необходимо отметить флагом представления, которые требуется экспортировать. Для поиска нужных представлений в списке можно воспользоваться полем Фильтр в верхней части окна. После нажатия кнопки Выполнить представления будут экспортированы.
Импорт представлений¶
Для импорта представлений можно воспользоваться кнопкой .
Будет открыт диалог, который содержит следующие настройки:
- Папка - в этом поле необходимо указать путь к папке, из которой надо импортировать файлы представлений, ее можно выбрать с помощью кнопки
.
- Удалить перед импортом все представления из базы данных - если флаг проставлен, то перед импортом все представления в системе будут удалены. Таким образом, после импорта в системе будут содержаться только импортированные представления.
- Заменить разрешения в базе данных - если флаг проставлен, то разрешения (роли) после импорта будут такими же, как в файлах. Иначе для существующих в базе данных представлений разрешения не будут изменены. Если флаг не проставлен и импортируемое представление отсутствует в базе данных, то после импорта его разрешения не будут заданы, т.е. представление будет доступно только администраторам.
В диалоге необходимо отметить флагом представления, которые требуется импортировать. После нажатия кнопки Выполнить представления будут импортированы.
Настройка доступа к представлениям¶
На вкладке Роли представления можно указать роли, которые будут иметь доступ к данному представлению. Можно указывать любые роли, кроме контекстных.
Important
Если сотрудник не имеет доступа к представлению - он не увидит его в рабочем месте и не сможет с ним работать, где бы оно ни использовалось - например, при выборе значения при помощи автодополнения.
Note
Права доступа к представлению пересчитываются раз в час. Чтобы не ждать, можно сбросить кэш прав доступа командой tadmin InvalidateCache
, либо перезапустить пул приложений.
Представление - это источник данных. Оно может использоваться в рабочих местах, в режиме отбора, в расширениях, в прямом обращении к веб-сервисам в пределах сессии определённого сотрудника.
Список ролей в представлении ограничивает доступ к представлению везде. Ограничение доступа означает, что клиентское приложение не знает ничего о этом представлении, ни о его метаинформации, ни о том факте, что оно вообще существует и при попытке запросить данные этого представления с сервера получит ошибку. Так работает серверная безопасность.
Если все сотрудники могут выбирать данные из этого представления, то в списке ролей должна быть роль Все сотрудники
. То, где и как пользователи выбирают данные, способ получения этих данных, уже не имеет отношения к безопасности. Раз пользователь выбирает данные, то он имеет к ним доступ, может их посмотреть и скопировать. Единственный способ ограничить набор данных, который видит пользователь, имеющий доступ к представлению - это фильтровать выборку с использованием параметра CurrentUserID
непосредственно на сервере.