Classes: IMetabaseSecurityClassesAttributes;
Свойство Classes возвращает параметры типов объектов.
Данное свойство актуально при добавлении нового атрибута отдельному типу объектов.
Определение типа объектов осуществляется с помощью метода IMetabaseSecurityClassesAttributes.Add двумя способами:
в виде перечисления MetabaseObjectClass, например:
Classes.Add(MetabaseObjectClass.KE_CLASS_STDDIM);
в виде значения, например:
Classes.Add(1025).
Для выполнения примера добавьте ссылки на системные сборки: ABAC, Metabase, Dal.
Sub UserProc;
Var
ABACAttribute: IABACAttribute;
ABACAttributes: IABACAttributes;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Attrs: IMetabaseSecurityObjectsAttributes;
ClassAttrs: IMetabaseSecurityClassAttributes;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Добавим атрибут для типа объектов «Табличный справочник»
Attrs := MS.Policy.ObjectsAttributes;
ClassAttrs := Attrs.Classes.Add(1025);
ABACAttribute := ClassAttrs.Attributes.Add;
ABACAttribute.Name(MB.CurrentLocale) := "Тип объектов";
ABACAttribute.Id := "Dictionary";
ABACAttribute.Description(MB.CurrentLocale) := "Для табличных справочников";
ABACAttribute.DefaultValue := 20;
ABACAttribute.DataType := DbDataType.Integer;
// Добавим атрибут для классов объектов
Attrs := MetabaseClass.Active.Security.Policy.ObjectsAttributes;
ABACAttribute := Attrs.Global.Add;
ABACAttribute.Name(MB.CurrentLocale) := "Классы объектов";
ABACAttribute.Id := "Object";
ABACAttribute.Description(MB.CurrentLocale) := "Для классов объектов";
ABACAttribute.DefaultValue := 15;
ABACAttribute.DataType := DbDataType.Integer;
// Сохраним изменения в менеджере безопасности
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
В результате выполнения примера в менеджере безопасности будут добавлены атрибуты для класса объектов и отдельного типа объектов «Табличный справочник».
См. также: