IMetabaseSecurity.ApplyWithInfo

Синтаксис

ApplyWithInfo(InfoUserToUpdate: IMetabaseUsersUpdate): MetabaseSecurityApplyInformation;

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

ApplyWithInfo(InfoUserToUpdate: Prognoz.Platform.Interop.Metabase.IMetabaseUsersUpdate) : Prognoz.Platform.Interop.Metabase.MetabaseSecurityApplyInformation

Параметры

InfoUserToUpdate. Список пользователей, которых необходимо обновить. На входе данный параметр должен быть пустым.

Описание

Метод ApplyWithInfo применяет политику безопасности и в случае необходимости возвращает список пользователей, которых необходимо обновить.

Комментарии

В случае если после применения метод возвращает MetabaseSecurityApplyInformation.NoSysGrants, то параметр InfoUserToUpdate будет содержать список пользователей, которых необходимо обновить. Под применением политики безопасности понимается сохранение всех изменений, содержащихся в настройках менеджера безопасности.

Пример Fore

Для выполнения примера подключите к модулю системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    Sec: IMetabaseSecurity;
    Policy: IMetabasePolicy;
    Group: IMetabaseGroup;
    User: IMetabaseUser;
    PS: IPasswordCredentials;
    InfoUserToUpdate: IMetabaseUsersUpdate;
    Result: Integer;
Begin
    MB := MetabaseClass.Active;
    Sec := MB.Security;
    Policy := Sec.Policy;
    Group := Sec.ResolveName("ТЕСТОВАЯ ГРУППА"As IMetabaseGroup; //.AddGroup("Тестовая группа");
    User := Sec.ResolveName("TESTUSER"As IMetabaseUser;
    Policy.Privilege("ВХОД").Grant(User);
    Policy.Privilege("ЧТЕНИЕ").Grant(User);
    Group.AddMember(User);
    Result := Sec.ApplyWithInfo(InfoUserToUpdate);
    If Result = 1 Then
        Sec.UpdateUsers(InfoUserToUpdate);
    End If;
End Sub UserProc;

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

Пример Fore.NET

Указанная процедура является точкой входа для .NET-сборки.

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Sec: IMetabaseSecurity;
    Policy: IMetabasePolicy;
    Group: IMetabaseGroup;
    User: IMetabaseUser;
    PS: IPasswordCredentials;
    InfoUserToUpdate: IMetabaseUsersUpdate;
    Result: Integer;
Begin
    MB := Params.Metabase;
    Sec := MB.Security;
    Policy := Sec.Policy;
    Group := Sec.ResolveName("ТЕСТОВАЯ ГРУППА"As IMetabaseGroup;
    User := Sec.ResolveName("TESTUSER"As IMetabaseUser;
    Policy.Privilege["ВХОД"].Grant(User);
    Policy.Privilege["ЧТЕНИЕ"].Grant(User);
    Group.AddMember(User);
    Result := Sec.ApplyWithInfo(InfoUserToUpdate) As Integer;
    If Result = 1 Then
        Sec.UpdateUsers(InfoUserToUpdate);
    End If;
End Sub;

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

См. также:

IMetabaseSecurity