ClassId: Integer;
Свойство ClassId возвращает идентификатор типа объектов.
Свойство доступно только для чтения и используется методами IMetabaseSecurityClassesAttributes.Add, IMetabaseSecurityClassesAttributes.FindByClass, IMetabaseSecurityClassesAttributes.RemoveByClass.
Также идентификатор типов объектов содержится в перечислении MetabaseObjectClass.
Для выполнения примера убедитесь, что хотя бы для одного типа объектов содержатся атрибуты.
Добавьте ссылки на системные сборки: ABAC, Metabase.
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Attrs: IMetabaseSecurityObjectsAttributes;
ClassAttrs: IMetabaseSecurityClassAttributes;
Id: Integer;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Удалим атрибуты типа объектов
Attrs := MS.Policy.ObjectsAttributes;
ClassAttrs := Attrs.Classes.Item(0); // определение
типа объектов по индексу, для которого есть атрибуты
Id := ClassAttrs.ClassId; // определение идентификатора данного типа объектов
Attrs.Classes.RemoveByClass(Id);
// Сохраним изменения в менеджере безопасности
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
В результате выполнения примера будут удалены атрибуты типа объектов с индексом «0».
См. также: