IMetabaseSecurityObjectsAttributes.Classes

Синтаксис

Classes: IMetabaseSecurityClassesAttributes;

Classes: Prognoz.Platform.Interop.ABAC.IMetabaseSecurityClassesAttributes;

Описание

Свойство Classes возвращает параметры типов объектов.

Комментарии

Данное свойство актуально при добавлении нового атрибута отдельному типу объектов.

Определение типа объектов осуществляется с помощью метода IMetabaseSecurityClassesAttributes.Add двумя способами:

Classes.Add(MetabaseObjectClass.KE_CLASS_STDDIM);

Classes.Add(1025).

Пример

Для выполнения примера добавьте ссылки на системные сборки: ABAC, Metabase, Dal, ForeSystem (для примера на Fore.NET).

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;

Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    ABACAttribute: IABACAttribute;
    ABACAttributes: IABACAttributes;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Lic: Object;
    Attrs: IMetabaseSecurityObjectsAttributes;
    ClassAttrs: IMetabaseSecurityClassAttributes;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    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.ddtInteger;
    
// Добавим атрибут для классов объектов
    Attrs := MS.Policy.ObjectsAttributes;
    ABACAttribute := Attrs.Global.Add();        
    ABACAttribute.Name[MB.CurrentLocale] := 
"Классы объектов";
    ABACAttribute.Id := 
"Object";
    ABACAttribute.Description[MB.CurrentLocale] := 
"Для классов объектов";
    ABACAttribute.DefaultValue := 
15;
    ABACAttribute.DataType := DbDataType.ddtInteger;
    
// Сохраним изменения в менеджере безопасности
    MS.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

В результате выполнения примера в менеджере безопасности будут добавлены атрибуты для класса объектов и отдельного типа объектов «Табличный справочник».

См. также:

IMetabaseSecurityObjectsAttributes