Attributes: IABACAttributes;
Attributes: Prognoz.Platform.Interop.ABAC.IABACAttributes;
Свойство Attributes возвращает коллекцию атрибутов.
Свойство доступно только для чтения.
Для работы с коллекцией атрибутов используйте интерфейс IABACAttributes.
Для выполнения примера разместите на форме компонент Button и два компонента Memo (для примера на Fore.NET используйте два компонента ListBox) с наименованиями «Button1», «Memo1»/«listBox1» и «Memo2»/«listBox2» соответственно. Для «Memo1» установите свойству ScrollBars значение «Vertical».
Добавьте ссылки на системные сборки:
для примера на Fore: ABAC, Metabase, Collections, Dal, Forms;
для примера на Fore.NET: ABAC, Metabase, Dal, Forms.NET.
Пример является обработчиком события OnClick для компонента «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
MS: IMetabasePolicy;
AttrObj: IMetabaseSecurityObjectsAttributes;
ABACAttributes: IABACAttributes;
ABACAttribute: IABACAttribute;
Begin
MB := MetabaseClass.Active;
MS := MB.Security.Policy;
// Получим атрибуты объектов
AttrObj := MS.ObjectsAttributes;
ABACAttributes := AttrObj.Global;
// Выведем свойства каждого атрибута
For Each ABACAttribute In ABACAttributes Do
Memo1.Lines.Add("Ключ: " + ABACAttribute.Key.ToString);
Memo1.Lines.Add("Идентификатор: " + ABACAttribute.Id);
Memo1.Lines.Add("Наименование: " + ABACAttribute.Name(MB.CurrentLocale));
Memo1.Lines.Add("Описание: " + ABACAttribute.Description(MB.CurrentLocale));
Memo1.Lines.Add("Тип данных: " + ABACAttribute.DataType.ToString);
Memo1.Lines.Add("Значение по умолчанию: " + ABACAttribute.DefaultValue);
Memo1.Lines.Add("=========================================");
Memo2.Lines.Add("Всего в коллекции: " + ABACAttribute.Attributes.Count.ToString + " атрибутов");
End For;
End Sub Button1OnClick;
Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dal;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
MS: IMetabasePolicy;
AttrObj: IMetabaseSecurityObjectsAttributes;
ABACAttributes: IABACAttributes;
ABACAttribute: IABACAttribute;
Begin
MB := Self.Metabase;
MS := MB.Security.Policy;
// Получим атрибуты объектов
AttrObj := MS.ObjectsAttributes;
ABACAttributes := AttrObj.Global;
// Выведем свойства каждого атрибута
For Each ABACAttribute In ABACAttributes Do
listBox1.Items.Add("Ключ: " + ABACAttribute.Key.ToString());
listBox1.Items.Add("Идентификатор: " + ABACAttribute.Id);
listBox1.Items.Add("Наименование: " + ABACAttribute.Name[MB.CurrentLocale]);
listBox1.Items.Add("Описание: " + ABACAttribute.Description[MB.CurrentLocale]);
listBox1.Items.Add("Тип данных: " + ABACAttribute.DataType.ToString());
listBox1.Items.Add("Значение по умолчанию: " + ABACAttribute.DefaultValue);
listBox1.Items.Add("=========================================");
listBox2.Items.Add("Всего в коллекции: " + ABACAttribute.Attributes.Count.ToString() + " атрибутов");
End For;
End Sub;
После нажатия на кнопку будут отображены свойства системных и пользовательских атрибутов объектов:
См. также: