Перейти к основному содержанию
`Ctrl`+`K`

# Администрирование Jexl

Безопасный диалект `Jexl` обеспечивает контроль доступа при выполнении `Jexl-скриптов`. Проверка прав применяется только к скриптам, выполняемым напрямую пользователем через:

- Специальные формы выполнения `Jexl`

- Дебаггер

- Rest-пакеты

- Консоль `WebSocket`

- Soap-сервисы

- Библиотеки скриптов

Для включения безопасного диалекта, необходимо зайти в приложение `Настройки системы`, зайти в пункт меню `Настройки и сервисы` -> `Настройки модулей системы` -> `Общие настройки модулей`. В настройках модуля `btk` включите пункт `Выполнение jexl-скриптов через безопасный диалект`.

Так же в настройках модуля `btk` можно включить пункт `Заполнять журнал доступа к объектам системы через jexl`, что позволит отслеживать в аудите к каким объектам обращался `Jexl-скрипт`.

Все настройки производятся в карточке роли. Что бы в неё попасть, необходимо зайти в приложение `Администратор`, в пункт меню `Доступ` -> `Роли` и открыть карточку.

## Доступ к Api / Pkg

Для ограничения доступа к `Api`, необходимо в карточке роли зайти в закладку `Серверные полномочия` -> `Доступ к Api`.

В отображении необходимо найти нужные вам `Api` и на детали `Права на вызов методов из Jexl` для нужных методов проставить галочки `Имеется право`.

Если нужен полный доступ к `Api`, то необходимо поставить галочку `Доступны все методы Api через Jexl`.

Доступ к Api

Настройка доступа к `Pkg` осуществляется аналогично, но на закладке `Доступ к пакетам`

## Разрешения Jexl

Для настройки доступа к классам, не являющимися часть бизнес-объекта системы `GlobalERP`, используется закладка `Разрешения Jexl`.

- Выдача прав на пакет: Для выдачи прав на пакет, необходимо выбрать тип привилегии `package` и имя привилегии соответствующее пакету. Таким образом из `Jexl-скрипта` будут доступны все классы данного пакета.

- Выдача прав на класс: Для выдачи прав на класс, необходимо выбрать тип привилегии `class` и имя привилегии соответствующее текущему классу. Что бы выдать права на конкретные методы класса, необходимо в поле `Методы` в виде `Json-массива` указать их наименования. При необходимости выдать права на все методы, кроме указанных, следует установить галочку `Указанные методы исключающие`.

Разрешения Jexl

## Выдача прав на таблицы в SQL запросах

Выдать права на доступ можно в карточке `Роли`.

1. Перейдите на закладку `Доступ к таблицам в SQL запросах`.

2. Найдите необходимые вам таблицы и выдайте/отзовите права с помощью соответствующего чекбокса (слева на право - права на `Select`, `Update`, `Delete`, `Insert`)

Примечание

Права на `Insert` можно выдать только на таблицы «не наших» (`public`, `aud`, `global_dev`, `global_system`) схем.

Внимание

Права на `Select` так же могут быть получены при наличии любой не запрещающей привилегии на администрируемом объекте, соответствующем данной таблице.

# Журнал доступа к объектам системы

Флаг в настройках модуля `btk` `Заполнять журнал доступа к объектам системы через Jexl`, позволяет отслеживать в аудите скриптов `Jexl` к каким именно объектам обращался `Jexl-скрипт`.

Для просмотра аудита, необходимо зайти в приложение `Настройки системы` и в пункт меню `Аудит` -> `Аудит Jexl`.

Аудит Jexl