Value: Variant;
Свойство Value определяет значение атрибута.
Данное свойство актуально при редактировании значения пользовательского атрибута. Указываемое значение должно иметь тот тип данных, который задан для атрибута. Для определения множественного значения атрибута укажите в свойстве Value массив значений. Массив также должен быть того типа, который определён для атрибута.
Для определения значения атрибута по умолчанию используйте свойство IABACAttribute.DefaultValue.
Для выполнения примера предполагается, что для пользователей добавлен целочисленный пользовательский атрибут с идентификатором WORKDAYS.
Добавьте ссылки на системные сборки: ABAC, Metabase.
Sub UserProc;
Var
Insts: IABACAttributeInstances;
Inst: IABACAttributeInstance;
MB: IMetabase;
MS: IMetabaseSecurity;
User: IMetabaseUser;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Получим атрибуты первого пользователя
User := MS.Users.Item(0);
Insts := User.Attributes;
// Найдем атрибут с идентификатором WORKDAYS
Inst := Insts.FindById("WORKDAYS");
// Проверим множественное ли значение найденного атрибута
If Inst.IsArray = False Then
// Изменим значение атрибута, если оно не множественное
Inst.Value := 20;
End If;
// Сохраним изменения в менеджере безопасности
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
В результате выполнения примера для указанного пользователя будет изменено значение атрибута с указанным идентификатором.
Для выполнения примера предполагается, что для пользователей добавлен целочисленный пользовательский атрибут с идентификатором VALUES. В менеджере безопасности создан пользователь TEST_USER.
Добавьте ссылки на системные сборки: ABAC, Metabase.
Sub UserProc;
Var
Insts: IABACAttributeInstances;
Inst: IABACAttributeInstance;
MB: IMetabase;
MS: IMetabaseSecurity;
User: IMetabaseUser;
AttrValues: Array Of Integer;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Получим атрибуты указанного пользователя
User := MS.ResolveName("TEST_USER") As IMetabaseUser;
Insts := User.Attributes;
// Найдем атрибут с идентификатором VALUES
Inst := Insts.FindById("VALUES");
// Создадим массив со множеством значений
AttrValues := New Integer[3];
AttrValues[0] := 1;
AttrValues[1] := 2;
AttrValues[2] := 3;
// Изменим значение атрибута
Inst.Value := AttrValues;
// Сохраним изменения в менеджере безопасности
MB.Security.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
При выполнении примера для указанного атрибута пользователя будет установлено множественное значение.
См. также: