IMetabaseSecurity.CurrentDomainSubjectAddState

Синтаксис Fore

CurrentDomainSubjectAddState(Type: SecuritySubjectType): DomainSubjectAddState;

Синтаксис Fore.NET

CurrentDomainSubjectAddState[Type: SecuritySubjectType]: Prognoz.Platform.Interop.Metabase.DomainSubjectAddState;

Параметры

Type. Тип субъектов безопасности, для которых необходимо определить параметры добавления.

Описание

Свойство CurrentDomainSubjectAddState определяет настройки добавления доменных субъектов безопасности.

Комментарии

Настройки, установленные в данном свойстве, будут применяться для всех добавляемых пользователей. Данное свойство является аналогом свойства IMetabase.CurrentDomainSubjectAddState.

Пример Fore

Для выполнения примера предполагается наличие домена «GROUP1». В данном домене созданы пользователи, имеющие в своем наименовании сочетание «TEST*». Соответствующие пользователи также созданы на сервере БД и имеют определенные гранты на объекты текущего репозитория.

Sub UserProc;
Var
    MB: IMetabase;
    MBSec: IMetabaseSecurity;
    SubSearch: ISecuritySubjectsSearch;
    Subjects: ISecuritySubjects;
    Subject: ISecuritySubject;
Begin
    MB := MetabaseClass.Active;
    MBSec := MB.Security;
    //Объект для поиска пользователей
    SubSearch := MBSec.NewSubjectsSearch;
    SubSearch.NameCriteria := "GROUP1\TEST*";
    //Поиск только доменных пользователей
    SubSearch.AreaIncludeDB := False;
    SubSearch.AreaIncludeNT := True;
    SubSearch.SubjectCriteria(SecuritySubjectType.User) := True;
    SubSearch.ExecuteSearch;
    //Найденные пользователи
    Subjects := SubSearch.Subjects;
    If Subjects.Count > 0 Then
        //Установка параметров добавления доменных пользователей
        MBSec.CurrentDomainSubjectAddState(SecuritySubjectType.User) :=
            DomainSubjectAddState.MakeExternalOn
            Or DomainSubjectAddState.ManageDBGrantsOff
            Or DomainSubjectAddState.Keep;
        //Добавление всех найденных пользователей
        For Each Subject In Subjects Do
            MBSec.AddNTSubject(Subject);
        End For;
        //Применение политики безопасности
        MBSec.Apply;
    End If;
End Sub UserProc;

При выполнении примера будет осуществлен поиск всех доменных пользователей, наименование которых удовлетворяет маске «GROUP1\TEST*». Найденные пользователи будут добавлены в список пользователей репозитория. Для пользователей будет установлен признак подключаемых с сервера. При раздаче привилегий и прав на объекты репозитория соответствующие гранты в базе репозитория раздаваться не будут.

Пример Fore.NET

Для выполнения примера предполагается наличие домена «GROUP1». В данном домене созданы пользователи, имеющие в своем наименовании сочетание «TEST*». Соответствующие пользователи также созданы на сервере БД и имеют определенные гранты на объекты текущего репозитория. Указанная процедура является точкой входа для .NET-сборки.

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MBSec: IMetabaseSecurity;
    SubSearch: ISecuritySubjectsSearch;
    Subjects: ISecuritySubjects;
    Subject: ISecuritySubject;
Begin
    MB := Params.Metabase;
    MBSec := MB.Security;
    //Объект для поиска пользователей
    SubSearch := MBSec.NewSubjectsSearch();
    SubSearch.NameCriteria := "GROUP1\TEST*";
    //Поиск только доменных пользователей
    SubSearch.AreaIncludeDB := False;
    SubSearch.AreaIncludeNT := True;
    SubSearch.SubjectCriteria[SecuritySubjectType.sstUser] := True;
    SubSearch.ExecuteSearch();
    //Найденные пользователи
    Subjects := SubSearch.Subjects;
    If Subjects.Count > 0 Then
        //Установка параметров добавления пользователей
        MBSec.CurrentDomainSubjectAddState[SecuritySubjectType.sstUser] :=
            DomainSubjectAddState.dsasMakeExternalOn
            Or DomainSubjectAddState.dsasManageDBGrantsOff
            Or DomainSubjectAddState.dsasKeep;
        //Добавление всех найденных пользователей
        For Each Subject In Subjects Do
            MBSec.AddNTSubject(Subject);
        End For;
        //Применение политики безопасности
        MBSec.Apply();
    End If;
End Sub;

При выполнении примера будет осуществлен поиск всех доменных пользователей, наименование которых удовлетворяет маске «GROUP1\TEST*». Найденные пользователи будут добавлены в список пользователей репозитория. Для пользователей будет установлен признак подключаемых с сервера. При раздаче привилегий и прав на объекты репозитория соответствующие гранты в базе репозитория раздаваться не будут.

См. также:

IMetabaseSecurity