Команда OpenNavigator

Назначение

Открытие менеджера безопасности для указанного репозитория.

Параметры использования

Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:

Параметр Описание
Элемент 1: IUiSecManagerParams Параметр, определяющий настройки отображения и возможности редактирования разделов. Содержит настройки репозитория, для которого необходимо открыть менеджер безопасности.

Особенности применения

Используется для открытия окна менеджера безопасности для какого-либо репозитория. Если в параметрах не указан репозиторий (значение свойства IUiSecManagerParams.Metabase равно Null), то результатом работы команды будет открытие менеджера безопасности без подключения к какому-либо репозиторию.

С помощью параметров можно скрывать разделы, открывать разделы в режиме чтения, запрещать сохранение политики, отключать элементы управления.

Настройки видимости и режима чтения производятся через свойства параметров отображения вкладок: IUISecManagerTabParams.ReadOnly и IUISecManagerTabParams.Visible.

Пример Fore

Для выполнения примера предполагается наличие формы и расположенной на ней кнопки «Button1». Подключите сборки Metabase, Ui.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    SecParams: IUiSecManagerParams;
Begin
    Target := WinApplication.Instance.GetPluginTarget("Adm");
    Context := Target.CreateExecutionContext;
    SecParams := new UiSecManagerParams.Create;
    SecParams.Metabase := MetabaseClass.Active; // 1. Задаем репозиторий
    //Параметры вкладок
    SecParams.EnablePolicySave(False); // 2. Запрещаем сохранение политики
    SecParams.Privilege.Visible := False// 3. Прячем вкладки "Привилегии", "Мандатный доступ" и "Мониторинг нарушений защиты"
    SecParams.Mandatory.Visible := False;
    SecParams.SecurityWatch.Visible := False;
    SecParams.Service.ReadOnly:= True; // 4. Для вкладки "Сервис" включаем режим «Только чтение»
    SecParams.RepositoryMenuEnabled := False// 5. Запрещаем команды в меню "Репозиторий" (кроме команд "Отключить" и "Выход")
    SecParams.ServiceMenuEnabled := False// 6. Запрещаем команды в меню "Сервис"
    SecParams.Users.ObjectRightsEnabled := False// 7. Для вкладки "Пользователи" запрещаем вызов диалога со свойствами объекта
    //Вызов менеджера безопасности
    Context.Data := SecParams;
    Target.Execute("OpenNavigator", Context);
End Sub Button1OnClick;

При нажатии на кнопку будет открыто окно менеджера безопасности с определенными настройками: часть разделов будет недоступна, изменение политики будет запрещено.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.

Imports Prognoz.Platform.Interop.Ui;
Imports Prognoz.Platform.Interop.Metabase;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    WinApp: WinApplication = New WinApplicationClass_2();
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    SecParams: IUiSecManagerParams;
Begin
    Target := WinApp.GetPluginTarget("Adm");
    Context := Target.CreateExecutionContext();
    SecParams := new UiSecManagerParams.Create();
    SecParams.Metabase := Self.Metabase; // 1. Задаем репозиторий
    //Параметры вкладок
    SecParams.EnablePolicySave(False); // 2. Запрещаем сохранение политики
    SecParams.Privilege.Visible := False// 3. Прячем вкладки "Привилегии", "Мандатный доступ", "Мониторинг нарушений защиты" и "Сервис"
    SecParams.Mandatory.Visible := False;
    SecParams.SecurityWatch.Visible := False;
    SecParams.Service.Visible := False;
    SecParams.RepositoryMenuEnabled := False// 4. Запрещаем команды в меню "Репозиторий" (кроме команд "Отключить" и "Выход")
    SecParams.ServiceMenuEnabled := False// 5. Запрещаем команды в меню "Сервис"
    SecParams.Users.ObjectRightsEnabled := False// 6. Для вкладки "Пользователи" запрещаем вызов диалога со свойствами объекта
    //Вызов менеджера безопасности
    Context.Data := SecParams;
    Target.Execute("OpenNavigator", Context, Null);
End Sub;

См. также:

IUiCommandTarget.Execute