ApplyO(Options: SecurityDescriptorApplyFlags);
Options. Элемент перечисления SecurityDescriptorApplyFlags, определяющий, каким образом будут применяться права к текущему объекту.
Метод ApplyO осуществляет выход из режима редактирования с сохранением изменений параметров безопасности объекта и определяет, будут ли применяться новые параметры безопасности для внутренних объектов и объектов, для которых установлен признак отложенной загрузки описания.
Примером внутреннего объекта является внутренняя модель, которая включена в цепочку расчета метамодели. Пример создания внутренней модели приведен в описании метода IMsCalculationChainEntries.AddExclusiveModel.
При применении прав по иерархии права на внутренние объекты и объекты, для которых установлен признак отложенной загрузки описания, не применяются.
Для выполнения примера убедитесь, что в менеджере безопасности содержится пользователь USER, в навигаторе объектов содержится объект с идентификатором OBJECT. Объект содержит дочерние объекты.
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
ObjDesc: IMetabaseObjectDescriptor;
SecDesc: ISecurityDescriptor;
AcessCL: IAccessControlList;
Subject: ISecuritySubject;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
ObjDesc := MB.ItemById("OBJECT");
SecDesc := ObjDesc.SecurityDescriptor;
Subject := MB.Security.ResolveName("USER");
SecDesc.Edit;
AcessCL := SecDesc.Acl;
AcessCL.AddAce(AceType.AccessAllowed, Subject.Sid, MetabaseObjectPredefinedRights.All);
SecDesc.ApplyO(SecurityDescriptorApplyFlags.ToInternal);
// Освободим лицензию
Lic := Null;
End Sub UserProc;
После выполнения примера в параметрах управления доступом указанного объекта и для всех дочерних объектов будет добавлен пользователь. В дополнительных параметрах безопасности ему будут назначен полный доступ.
См. также: