ApplyWithInfo(InfoUserToUpdate: IMetabaseUsersUpdate): MetabaseSecurityApplyInformation;
InfoUserToUpdate. Список пользователей, которых необходимо обновить.
Примечание. На входе данный параметр должен быть пустым.
Метод ApplyWithInfo применяет политику безопасности и в случае необходимости возвращает список пользователей, которых необходимо обновить.
В случае если после применения метод возвращает MetabaseSecurityApplyInformation.NoSysGrants, то параметр InfoUserToUpdate будет содержать список пользователей, которых необходимо обновить. Под применением политики безопасности понимается сохранение всех изменений, содержащихся в настройках менеджера безопасности.
Для выполнения примера убедитесь, что в менеджере безопасности содержится пользователь TEST_USER и группа пользователей с наименованием «ТЕСТОВАЯ ГРУППА».
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Policy: IMetabasePolicy;
Group: IMetabaseGroup;
User: IMetabaseUser;
InfoUserToUpdate: IMetabaseUsersUpdate;
Result: Integer;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
Policy := MS.Policy;
// Получим параметры группы пользователей и пользователя
Group := MS.ResolveName("ТЕСТОВАЯ ГРУППА") As IMetabaseGroup;
User := MS.ResolveName("TEST_USER") As IMetabaseUser;
// Раздадим привилегии пользователю
Policy.Privilege("ВХОД").Grant(User);
Policy.Privilege("ЧТЕНИЕ").Grant(User);
// Добавим пользователя в группу
Group.AddMember(User);
// Сохраним изменения и обновим список пользователей
Result := MS.ApplyWithInfo(InfoUserToUpdate);
If Result = 1 Then
MS.UpdateUsers(InfoUserToUpdate);
End If;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
После выполнения примера пользователь TEST_USER будет добавлен в тестовую группу пользователей с заданными привилегиями.
См. также: