Attribute: IABACAttribute;
Attribute: Prognoz.Platform.Interop.ABAC.IABACAttribute;
Свойство Attribute возвращает свойства атрибута для редактирования.
Данное свойство актуально при редактировании свойств существующего атрибута.
Для определения свойств атрибута используйте интерфейс IABACAttribute.
Для выполнения примера убедитесь, что для пользователей добавлен пользовательский атрибут.
Добавьте ссылки на системные сборки: ABAC, Metabase, Dal, ForeSystem (для примера на Fore.NET).
Sub UserProc;
Var
Insts: IABACAttributeInstances;
Attr: IABACAttribute;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
i, Count: Integer;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Изменим идентификатор последнего атрибута пользователя
Insts := MS.Users.Item(0).Attributes;
Count := Insts.Count;
Attr := Insts.Item(Count-1).Attribute;
Attr.Id := "WORKDAYS";
// Выведем в консоль свойства пользовательских атрибутов пользователя
For i := 0 To Count-1 Do
If Insts.Item(i).Attribute.Predefined = False Then
Debug.WriteLine("Наименование: " + Insts.Item(i).Name(MB.CurrentLocale)); // наименование
Debug.WriteLine("Идентификатор: " + Insts.Item(i).Id); // идентификатор
Debug.WriteLine("Ключ: " + Insts.Item(i).Key.ToString); // ключ
Debug.WriteLine("Тип данных: " + Insts.Item(i).DataType.ToString); // тип данных
Debug.WriteLine("============================");
End If;
End For;
// Сохраним изменения в менеджере безопасности
MB.Security.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
Insts: IABACAttributeInstances;
Attr: IABACAttribute;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
i, Count: Integer;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
// Изменим идентификатор последнего атрибута пользователей
Insts := MS.Users.Item[0].Attributes;
Count := Insts.Count;
Attr := Insts.Item[Count-1].Attribute;
Attr.Id := "WORKDAYS";
// Выведем в консоль свойства пользовательских атрибутов пользователя
For i := 0 To Count-1 Do
If Insts.Item[i].Attribute.Predefined = False Then
System.Diagnostics.Debug.WriteLine("Наименование: " + Insts.Item[i].Name[MB.CurrentLocale]); // наименование
System.Diagnostics.Debug.WriteLine("Идентификатор: " + Insts.Item[i].Id); // идентификатор
System.Diagnostics.Debug.WriteLine("Ключ: " + Insts.Item[i].Key.ToString()); // ключ
System.Diagnostics.Debug.WriteLine("Тип данных: " + Insts.Item[i].DataType.ToString()); // тип данных
System.Diagnostics.Debug.WriteLine("============================");
End If;
End For;
// Сохраним изменения в менеджере безопасности
MB.Security.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
В результате выполнения примера для пользователей будет изменен идентификатор последнего атрибута. В консоль будут выведены свойства пользовательских атрибутов пользователей:
Наименование: Пользовательский атрибут
Идентификатор: CUSTOM_ATTR
Ключ: 15
Тип данных: 1
============================
Наименование: Количество трудодней
Идентификатор: WORKDAYS
Ключ: 16
Тип данных: 2
============================
См. также: