ClassId: Integer;
ClassId: System.Int32;
Свойство 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;
Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Attrs: IMetabaseSecurityObjectsAttributes;
ClassAttrs: IMetabaseSecurityClassAttributes;
Id: Integer;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
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;
В результате выполнения примера будут удалены атрибуты типа объектов с индексом «0».
См. также: